[llvm-commits] [llvm] r121905 - in /llvm/trunk: lib/Transforms/InstCombine/InstCombineCompares.cpp test/Transforms/InstCombine/overflow.ll

Duncan Sands baldrick at free.fr
Thu Dec 16 01:43:29 PST 2010


Hi Owen,

> Add an InstCombine transform to recognize instances of manual overflow-safe addition
> (performing the addition in a wider type and explicitly checking for overflow), and
> fold them down to intrinsics.  This currently only supports signed-addition, but could
> be generalized if someone works out the magic constant formulas for other operations.
>
> Fixes<rdar://problem/8558713>.

I've speculatively reverted this because it seems to have broken the dragonegg
self-host builder, see below.

Ciao, Duncan.

llvm[3]: Compiling AlphaRegisterInfo.cpp for Release+Debug+Asserts build
Instruction does not dominate all uses!
   %155 = extractvalue %40 %154, 0
   %130 = zext i16 %155 to i64
Instruction does not dominate all uses!
   %130 = zext i16 %155 to i64
   %131 = call %struct.raw_ostream* 
@_ZN4llvm11raw_ostreamlsEl(%struct.raw_ostream* %129, i64 %130) nounwind, !dbg !1672
Instruction does not dominate all uses!
   %131 = call %struct.raw_ostream* 
@_ZN4llvm11raw_ostreamlsEl(%struct.raw_ostream* %129, i64 %130) nounwind, !dbg !1672
   %132 = getelementptr inbounds %struct.raw_ostream* %131, i64 0, i32 3, !dbg !1682
Instruction does not dominate all uses!
   %132 = getelementptr inbounds %struct.raw_ostream* %131, i64 0, i32 3, !dbg !1682
   %133 = load i8** %132, align 8, !dbg !1682
Instruction does not dominate all uses!
   %133 = load i8** %132, align 8, !dbg !1682
   %134 = getelementptr inbounds i8* %133, i64 17, !dbg !1682
Instruction does not dominate all uses!
   %131 = call %struct.raw_ostream* 
@_ZN4llvm11raw_ostreamlsEl(%struct.raw_ostream* %129, i64 %130) nounwind, !dbg !1672
   %135 = getelementptr inbounds %struct.raw_ostream* %131, i64 0, i32 2, !dbg !1682
Instruction does not dominate all uses!
   %135 = getelementptr inbounds %struct.raw_ostream* %131, i64 0, i32 2, !dbg !1682
   %136 = load i8** %135, align 8, !dbg !1682
Instruction does not dominate all uses!
   %134 = getelementptr inbounds i8* %133, i64 17, !dbg !1682
   %137 = icmp ugt i8* %134, %136, !dbg !1682
Instruction does not dominate all uses!
   %137 = icmp ugt i8* %134, %136, !dbg !1682
   br i1 %137, label %"3.i.i40", label %"4.i.i41", !dbg !1682
Broken module found, compilation aborted!
Stack dump:
0.	Running pass 'Module Verifier' on function 
'@_ZNK4llvm17AlphaRegisterInfo19eliminateFrameIndexENS_14ilist_iteratorINS_12MachineInstrEEEiPNS_12RegScavengerE'
g++: Internal error: Aborted (program cc1plus)
Please submit a full bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.



More information about the llvm-commits mailing list