- Jan 01, 2005
-
-
Reid Spencer authored
llvm-svn: 19222
-
Reid Spencer authored
llvm-svn: 19221
-
Chris Lattner authored
* We can now fold cast instructions into select instructions that have at least one constant operand. * We now optimize expressions more aggressively based on bits that are known to be zero. These optimizations occur a lot in code that uses bitfields even in simple ways. * We now turn more cast-cast sequences into AND instructions. Before we would only do this if it if all types were unsigned. Now only the middle type needs to be unsigned (guaranteeing a zero extend). * We transform sign extensions into zero extensions in several cases. This corresponds to these test/Regression/Transforms/InstCombine testcases: 2004-11-22-Missed-and-fold.ll and.ll: test28-29 cast.ll: test21-24 and-or-and.ll cast-cast-to-and.ll zeroext-and-reduce.ll llvm-svn: 19220
-
Chris Lattner authored
llvm-svn: 19219
-
Chris Lattner authored
llvm-svn: 19218
-
Chris Lattner authored
llvm-svn: 19217
-
Chris Lattner authored
llvm-svn: 19216
-
Chris Lattner authored
llvm-svn: 19215
-
Chris Lattner authored
While we're at it, improve codegen of select instructions. For this testcase: int %test(bool %C, int %A, int %B) { %D = select bool %C, int %A, int %B ret int %D } We used to generate this code: _test: cmpwi cr0, r3, 0 bne .LBB_test_2 ; .LBB_test_1: ; b .LBB_test_3 ; .LBB_test_2: ; or r5, r4, r4 .LBB_test_3: ; or r3, r5, r5 blr Now we emit: _test: cmpwi cr0, r3, 0 bne .LBB_test_2 ; .LBB_test_1: ; or r4, r5, r5 .LBB_test_2: ; or r3, r4, r4 blr -Chris llvm-svn: 19214
-
Chris Lattner authored
In particular, instead of compiling this: bool %test(int %A, int %B) { %C = setlt int %A, %B ret bool %C } to this: test: save %sp, -96, %sp subcc %i0, %i1, %g0 bl .LBBtest_1 ! nop ba .LBBtest_2 ! nop .LBBtest_1: ! or %g0, 1, %i0 ba .LBBtest_3 ! nop .LBBtest_2: ! or %g0, 0, %i0 ba .LBBtest_3 ! nop .LBBtest_3: ! restore %g0, %g0, %g0 retl nop We now compile it to this: test: save %sp, -96, %sp subcc %i0, %i1, %g0 or %g0, 1, %i0 bl .LBBtest_2 ! nop .LBBtest_1: ! or %g0, %g0, %i0 .LBBtest_2: ! restore %g0, %g0, %g0 retl nop llvm-svn: 19213
-
Chris Lattner authored
SimplifyCFG is one of those passes that we use for final cleanup: it should not rely on other passes to clean up its garbage. This fixes the "why are trivially dead setcc's in the output of gccas" problem. llvm-svn: 19212
-
Chris Lattner authored
dead instructions. llvm-svn: 19211
-
Chris Lattner authored
llvm-svn: 19210
-
Chris Lattner authored
llvm-svn: 19209
-
Chris Lattner authored
llvm-svn: 19208
-
Reid Spencer authored
llvm-svn: 19207
-
- Dec 31, 2004
-
-
Reid Spencer authored
correctly omit them for non-Unix operating systems. llvm-svn: 19206
-
Reid Spencer authored
Make LLVM_ON_UNIX and LLVM_ON_WIN32 available in the makefiles llvm-svn: 19205
-
Reid Spencer authored
libraries and tools. Thanks to Henrik Bach for this suggestion. llvm-svn: 19204
-
Jeff Cohen authored
llvm-svn: 19203
-
Jeff Cohen authored
llvm-svn: 19202
-
Reid Spencer authored
llvm-svn: 19201
-
Reid Spencer authored
* lib/System depends on sbrk(3), make sure we check for it. llvm-svn: 19200
-
Jeff Cohen authored
llvm-svn: 19199
-
Jeff Cohen authored
llvm-svn: 19198
-
Reid Spencer authored
* Make library descriptions consistently lower case. llvm-svn: 19197
-
Reid Spencer authored
* Make subordinate libraries presented with a vertical list instead of all listed on a single line. llvm-svn: 19196
-
Reid Spencer authored
llvm-svn: 19195
-
Reid Spencer authored
library dependencies, for documentation purposes. llvm-svn: 19194
-
- Dec 30, 2004
-
-
Reid Spencer authored
processed. llvm-svn: 19193
-
Reid Spencer authored
* Place a try/catch block around the entire tool to Make sure std::string exceptions are caught and printed before exiting the tool. * Make sure we catch unhandled exceptions at the top level so that we don't abort with a useless message but indicate than an unhandled exception was generated. llvm-svn: 19192
-
Jeff Cohen authored
llvm-svn: 19190
-
- Dec 29, 2004
-
-
Reid Spencer authored
* Add CAN_DLOPEN_SELF so we can determine if dlopen(0) will open the program or not. * Correct a warning messages to be a little more specific on what it checks llvm-svn: 19184
-
Reid Spencer authored
llvm-svn: 19183
-
Reid Spencer authored
llvm-svn: 19182
-
Chris Lattner authored
llvm-svn: 19181
-
Chris Lattner authored
llvm-svn: 19180
-
Chris Lattner authored
llvm-svn: 19179
-
Chris Lattner authored
llvm-svn: 19178
-
Chris Lattner authored
llvm-svn: 19177
-