- Jun 11, 2004
-
-
Chris Lattner authored
printed incorrectly, and we were reserving 8 extra bytes of stack space for functions on X86. llvm-svn: 14152
-
Chris Lattner authored
llvm-svn: 14151
-
Chris Lattner authored
llvm-svn: 14150
-
Chris Lattner authored
comparisons. In an 'isunordered' predicate, which looks like this at the LLVM level: %a = call bool %llvm.isnan(double %X) %b = call bool %llvm.isnan(double %Y) %COM = or bool %a, %b We used to generate this code: fxch %ST(1) fucomip %ST(0), %ST(0) setp %AL fucomip %ST(0), %ST(0) setp %AH or %AL, %AH With this patch, we generate this code: fucomip %ST(0), %ST(1) fstp %ST(0) setp %AL Which should make alkis happy. Tested as X86/compare_folding.llx:test1 llvm-svn: 14148
-
Chris Lattner authored
llvm-svn: 14146
-
Chris Lattner authored
llvm-svn: 14145
-
Chris Lattner authored
we can get rid of the FpUCOM/FpUCOMi pseudo instructions, which makes stuff simpler and faster. llvm-svn: 14144
-
Chris Lattner authored
twoarg cases. llvm-svn: 14143
-
Chris Lattner authored
testcase llvm-svn: 14141
-
Chris Lattner authored
llvm-svn: 14140
-
Chris Lattner authored
This makes the code much simpler, and the two cases really do belong apart. Once we do it, it's pretty obvious how flawed the logic was for A != A case, so I fixed it (fixing PR369). This also uses freeStackSlotAfter instead of inserting an fxchg then popStackAfter'ing in the case where there is a dead result (unlikely, but possible), producing better code. llvm-svn: 14139
-
Reid Spencer authored
llvm-svn: 14137
-
Chris Lattner authored
llvm-svn: 14134
-
Chris Lattner authored
isunordered(X, Y) === isnan(X) | isnan(Y) Remove isunordered, add isnan. llvm-svn: 14132
-
Brian Gaeke authored
them into the constant pool. llvm-svn: 14128
-
Alkis Evlogimenos authored
llvm-svn: 14127
-
Reid Spencer authored
llvm-svn: 14123
-
Reid Spencer authored
llvm-svn: 14122
-
Reid Spencer authored
llvm-svn: 14121
-
- Jun 10, 2004
-
-
Reid Spencer authored
llvm-svn: 14120
-
Reid Spencer authored
llvm-svn: 14115
-
Reid Spencer authored
llvm-svn: 14113
-
Chris Lattner authored
targets whose stack grows up. Patch contributed by Vladimir Prus llvm-svn: 14111
-
Chris Lattner authored
llvm-svn: 14110
-
Chris Lattner authored
186.crafty, fhourstones and 132.ijpeg. Bugpoint makes really nasty miscompilations embarassingly easy to find. It narrowed it down to the instcombiner and this testcase (from fhourstones): bool %l7153_l4706_htstat_loopentry_2E_4_no_exit_2E_4(int* %i, [32 x int]* %works, int* %tmp.98.out) { newFuncRoot: %tmp.96 = load int* %i ; <int> [#uses=1] %tmp.97 = getelementptr [32 x int]* %works, long 0, int %tmp.96 ; <int*> [#uses=1] %tmp.98 = load int* %tmp.97 ; <int> [#uses=2] %tmp.99 = load int* %i ; <int> [#uses=1] %tmp.100 = and int %tmp.99, 7 ; <int> [#uses=1] %tmp.101 = seteq int %tmp.100, 7 ; <bool> [#uses=2] %tmp.102 = cast bool %tmp.101 to int ; <int> [#uses=0] br bool %tmp.101, label %codeRepl4.exitStub, label %codeRepl3.exitStub codeRepl4.exitStub: ; preds = %newFuncRoot store int %tmp.98, int* %tmp.98.out ret bool true codeRepl3.exitStub: ; preds = %newFuncRoot store int %tmp.98, int* %tmp.98.out ret bool false } ... which only has one combination performed on it: $ llvm-as < t.ll | opt -instcombine -debug | llvm-dis IC: Old = %tmp.101 = seteq int %tmp.100, 7 ; <bool> [#uses=1] New = setne int %tmp.100, 0 ; <bool>:<badref> [#uses=0] IC: MOD = br bool %tmp.101, label %codeRepl3.exitStub, label %codeRepl4.exitStub IC: MOD = %tmp.97 = getelementptr [32 x int]* %works, uint 0, int %tmp.96 ; <int*> [#uses=1] It doesn't get much better than this. :) llvm-svn: 14109
-
Chris Lattner authored
llvm-svn: 14108
-
Chris Lattner authored
llvm-svn: 14107
-
Chris Lattner authored
llvm-svn: 14106
-
Chris Lattner authored
llvm-svn: 14104
-
- Jun 09, 2004
-
-
Brian Gaeke authored
llvm-svn: 14103
-
Brian Gaeke authored
llvm-svn: 14102
-
Brian Gaeke authored
llvm-svn: 14101
-
Chris Lattner authored
on new front-ends and stuff). Also get rid of some tabs that snuck in. llvm-svn: 14100
-
Reid Spencer authored
such a way that if the Value being printed is standalone that we don't assert and abort but just print ":??" for the slot number instead. llvm-svn: 14097
-
John Criswell authored
that cast to bool. llvm-svn: 14096
-
Chris Lattner authored
llvm-svn: 14095
-
Reid Spencer authored
llvm-svn: 14093
-
Reid Spencer authored
llvm-svn: 14091
-
Reid Spencer authored
llvm-svn: 14090
-
Reid Spencer authored
Don't dump functions unless "detailedResults" is requested. llvm-svn: 14089
-