[gcc(refs/users/meissner/heads/work139)] Update ChangeLog.meissner
Michael Meissner
meissner@gcc.gnu.org
Thu Oct 12 21:54:23 GMT 2023
https://gcc.gnu.org/g:448688aaf59f866c3dbd5c3d0e3c764147f37fb7
commit 448688aaf59f866c3dbd5c3d0e3c764147f37fb7
Author: Michael Meissner <meissner@linux.ibm.com>
Date: Thu Oct 12 00:51:50 2023 -0400
Update ChangeLog.meissner
Diff:
---
gcc/ChangeLog.meissner | 28 ++++++++++++++++------------
1 file changed, 16 insertions(+), 12 deletions(-)
diff --git a/gcc/ChangeLog.meissner b/gcc/ChangeLog.meissner
index 5021e3ab1f2..0075b9b4ee0 100644
--- a/gcc/ChangeLog.meissner
+++ b/gcc/ChangeLog.meissner
@@ -1,4 +1,4 @@
-==================== Branch work139, patch #1 ====================
+==================== Branch work139, patch #2 ====================
PowerPC: Do not depend on an undefined shift
@@ -11,15 +11,15 @@ fine.
I traced this down to a change made around October 10th:
-commit 8f1a70a4fbcc6441c70da60d4ef6db1e5635e18a (HEAD)
-Author: Jiufu Guo <guojiufu@linux.ibm.com>
-Date: Tue Jan 10 20:52:33 2023 +0800
-
- rs6000: build constant via li/lis;rldicl/rldicr
-
- If a constant is possible left/right cleaned on a rotated value from
- a negative value of "li/lis". Then, using "li/lis ; rldicl/rldicr"
- to build the constant.
+| commit 8f1a70a4fbcc6441c70da60d4ef6db1e5635e18a (HEAD)
+| Author: Jiufu Guo <guojiufu@linux.ibm.com>
+| Date: Tue Jan 10 20:52:33 2023 +0800
+|
+| rs6000: build constant via li/lis;rldicl/rldicr
+|
+| If a constant is possible left/right cleaned on a rotated value from
+| a negative value of "li/lis". Then, using "li/lis ; rldicl/rldicr"
+| to build the constant.
The code was doing a -1 << 64 which is undefined behavior because different
machines produce different results. On the x86_64 system, (-1 << 64) produces
@@ -34,8 +34,12 @@ crosss compiler and on a native PowerPC system.
gcc/
PR target/111778
- * config/rs6000/rs6000.cc (can_be_built_by_li_lis_and_rldicl): Do not
- use a shift left by the number of bits in a host wide int.
+ * config/rs6000/rs6000.cc (can_be_built_by_li_lis_and_rldicl): Protect
+ code from shifts that are undefined.
+ (can_be_built_by_li_lis_and_rldicr): Likewise.
+ (can_be_built_by_li_and_rldic): Likewise.
+
+==================== Branch work139, patch #1 was reverted ====================
==================== Branch work139, baseline ====================
More information about the Gcc-cvs
mailing list