- Nov 26, 2008
-
-
Chris Lattner authored
phrased in terms of liveness instead of as a horrible hack. :) In pratice, this doesn't change the generated code for either 255.vortex or 403.gcc, but it could cause minor code changes in theory. This is framework for coming changes. llvm-svn: 60082
-
Chris Lattner authored
llvm-svn: 60076
-
Chris Lattner authored
-enable-smarter-addr-folding to llc) that gives CGP a better cost model for when to sink computations into addressing modes. The basic observation is that sinking increases register pressure when part of the addr computation has to be available for other reasons, such as having a use that is a non-memory operation. In cases where it works, it can substantially reduce register pressure. This code is currently an overall win on 403.gcc and 255.vortex (the two things I've been looking at), but there are several things I want to do before enabling it by default: 1. This isn't doing any caching of results, so it is much slower than it could be. It currently slows down release-asserts llc by 1.7% on 176.gcc: 27.12s -> 27.60s. 2. This doesn't think about inline asm memory operands yet. 3. The cost model botches the case when the needed value is live across the computation for other reasons. I'll continue poking at this, and eventually turn it on as llcbeta. llvm-svn: 60074
-
Evan Cheng authored
Revert r60042. IndVarSimplify should check if APFloat is PPCDoubleDouble first before trying to convert it to an integer. llvm-svn: 60072
-
Chris Lattner authored
optimize addressing modes. This allows us to optimize things like isel-sink2.ll into: movl 4(%esp), %eax cmpb $0, 4(%eax) jne LBB1_2 ## F LBB1_1: ## TB movl $4, %eax ret LBB1_2: ## F movzbl 7(%eax), %eax ret instead of: _test: movl 4(%esp), %eax cmpb $0, 4(%eax) leal 4(%eax), %eax jne LBB1_2 ## F LBB1_1: ## TB movl $4, %eax ret LBB1_2: ## F movzbl 3(%eax), %eax ret This shrinks (e.g.) 403.gcc from 1133510 to 1128345 lines of .s. Note that the 2008-10-16-SpillerBug.ll testcase is dubious at best, I doubt it is really testing what it thinks it is. llvm-svn: 60068
-
- Nov 25, 2008
-
-
Chris Lattner authored
can recursively match things) and scales by 0 by ignoring them. This triggers once in 403.gcc, saving 1 (!!!!) instruction in the whole huge app. llvm-svn: 60013
-
Chris Lattner authored
into a new AddressingModeMatcher class. This makes it easier to reason about and reduces passing around of stuff, but has no functionality change. llvm-svn: 60012
-
Chris Lattner authored
new FindMaximalLegalAddressingModeForOperation helper method. llvm-svn: 60011
-
Chris Lattner authored
llvm-svn: 60010
-
Chris Lattner authored
llvm-svn: 60009
-
- Nov 24, 2008
-
-
Chris Lattner authored
llvm-svn: 59990
-
Chris Lattner authored
llvm-svn: 59989
-
Chris Lattner authored
llvm-svn: 59985
-
Chris Lattner authored
llvm-svn: 59976
-
Chris Lattner authored
with an undef. llvm-svn: 59972
-
- Nov 21, 2008
-
-
Devang Patel authored
llvm-svn: 59844
-
Devang Patel authored
llvm-svn: 59841
-
Chris Lattner authored
arbitrary integer width for the count. llvm-svn: 59823
-
Bill Wendling authored
g++ -m32 -c -g -DIN_GCC -W -Wall -Wwrite-strings -Wmissing-format-attribute -fno-common -mdynamic-no-pic -DHAVE_CONFIG_H -Wno-unused -DTARGET_NAME=\"i386-apple-darwin9.5.0\" -I. -I. -I../../llvm-gcc.src/gcc -I../../llvm-gcc.src/gcc/. -I../../llvm-gcc.src/gcc/../include -I./../intl -I../../llvm-gcc.src/gcc/../libcpp/include -I../../llvm-gcc.src/gcc/../libdecnumber -I../libdecnumber -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.obj/include -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/include -DENABLE_LLVM -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.obj/../llvm.src/include -D_DEBUG -D_GNU_SOURCE -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -I. -I. -I../../llvm-gcc.src/gcc -I../../llvm-gcc.src/gcc/. -I../../llvm-gcc.src/gcc/../include -I./../intl -I../../llvm-gcc.src/gcc/../libcpp/include -I../../llvm-gcc.src/gcc/../libdecnumber -I../libdecnumber -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.obj/include -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/include ../../llvm-gcc.src/gcc/llvm-types.cpp -o llvm-types.o ../../llvm-gcc.src/gcc/llvm-convert.cpp: In member function 'void TreeToLLVM::EmitMemCpy(llvm::Value*, llvm::Value*, llvm::Value*, unsigned int)': ../../llvm-gcc.src/gcc/llvm-convert.cpp:1496: error: 'memcpy_i32' is not a member of 'llvm::Intrinsic' ../../llvm-gcc.src/gcc/llvm-convert.cpp:1496: error: 'memcpy_i64' is not a member of 'llvm::Intrinsic' ../../llvm-gcc.src/gcc/llvm-convert.cpp: In member function 'void TreeToLLVM::EmitMemMove(llvm::Value*, llvm::Value*, llvm::Value*, unsigned int)': ../../llvm-gcc.src/gcc/llvm-convert.cpp:1512: error: 'memmove_i32' is not a member of 'llvm::Intrinsic' ../../llvm-gcc.src/gcc/llvm-convert.cpp:1512: error: 'memmove_i64' is not a member of 'llvm::Intrinsic' ../../llvm-gcc.src/gcc/llvm-convert.cpp: In member function 'void TreeToLLVM::EmitMemSet(llvm::Value*, llvm::Value*, llvm::Value*, unsigned int)': ../../llvm-gcc.src/gcc/llvm-convert.cpp:1528: error: 'memset_i32' is not a member of 'llvm::Intrinsic' ../../llvm-gcc.src/gcc/llvm-convert.cpp:1528: error: 'memset_i64' is not a member of 'llvm::Intrinsic' make[3]: *** [llvm-convert.o] Error 1 make[3]: *** Waiting for unfinished jobs.... rm fsf-funding.pod gcov.pod gfdl.pod cpp.pod gpl.pod gcc.pod make[2]: *** [all-stage1-gcc] Error 2 make[1]: *** [stage1-bubble] Error 2 make: *** [all] Error 2 llvm-svn: 59809
-
Sanjiv Gupta authored
llvm-svn: 59802
-
Nick Lewycky authored
a subtract is cheaper than a multiply. This generalizes an existing transform. llvm-svn: 59800
-
Devang Patel authored
llvm-svn: 59778
-
- Nov 19, 2008
-
-
Devang Patel authored
llvm-svn: 59658
-
Devang Patel authored
If there are two consecutive llvm.dbg.stoppoint calls then it is likely that the optimizer deleted code in between these two intrinsics. Keep only the last llvm.dbg.stoppoint in this case. llvm-svn: 59657
-
- Nov 18, 2008
-
-
Bill Wendling authored
llvm-svn: 59518
-
Devang Patel authored
Give SIToFPInst preference over UIToFPInst because it is faster on platforms that are widely used. llvm-svn: 59476
-
Devang Patel authored
llvm-svn: 59471
-
- Nov 17, 2008
-
-
Devang Patel authored
llvm-svn: 59466
-
- Nov 16, 2008
-
-
Chris Lattner authored
llvm-svn: 59409
-
Chris Lattner authored
llvm-svn: 59403
-
Chris Lattner authored
llvm-svn: 59402
-
Chris Lattner authored
llvm-svn: 59401
-
Chris Lattner authored
llvm-svn: 59400
-
Chris Lattner authored
llvm-svn: 59398
-
Chris Lattner authored
a bit. Next step is to factor out into their own helper functions. llvm-svn: 59397
-
Chris Lattner authored
llvm-svn: 59395
-
Chris Lattner authored
llvm-svn: 59392
-
Chris Lattner authored
llvm-svn: 59390
-
Chris Lattner authored
folded into the select. llvm-svn: 59389
-
Chris Lattner authored
Eliminate the cases checking for cond?0:-1, since that is already handled by commutative checking. llvm-svn: 59388
-