[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