- Dec 21, 2005
-
-
Chris Lattner authored
that were overloaded to work before and after the stackifier runs. With the new clean world, it is possible to write patterns for these instructions: woo! This also adds a few simple patterns here and there, though there are a lot still missing. These should be easy to add though. :) See the comments under "Floating Point Stack Support" for more details on the new world order. This patch as absolutely no effect on the generated code, woo! llvm-svn: 24899
-
Chris Lattner authored
llvm-svn: 24898
-
Chris Lattner authored
llvm-svn: 24897
-
Chris Lattner authored
llvm-svn: 24896
-
Reid Spencer authored
llvm-svn: 24895
-
Chris Lattner authored
llvm-svn: 24894
-
Reid Spencer authored
This patch adds a -post-link-opts option to llvm-ld which allows an arbitrary program to optimize bytecode after linking. The program is passed two file names. The first is the input (linked bytecode) the second is where it must place its output (presumably after optimizing). If the output file is bytecode, it is used as a substitute for the input. This will allow things like poolalloc to be written as a separate program instead of a loadable module or built into LLVM. llvm-svn: 24893
-
Reid Spencer authored
llvm-svn: 24892
-
Reid Spencer authored
* Add --enable-debug-runtime option, defaults to disabled * Pass the new config var, DEBUG_RUNTIME, to Makefiles * Don't use -Wa,-strip-debug if debug-runtime is enabled llvm-svn: 24891
-
Chris Lattner authored
llvm-svn: 24890
-
Evan Cheng authored
llvm-svn: 24889
-
Evan Cheng authored
for Darwin. * Added lowering hook for ISD::RET. It inserts CopyToRegs for the return value (or store / fld / copy to ST(0) for floating point value). This eliminate the need to write C++ code to handle RET with variable number of operands. llvm-svn: 24888
-
Chris Lattner authored
llvm-svn: 24887
-
- Dec 20, 2005
-
-
Evan Cheng authored
llvm-svn: 24886
-
Evan Cheng authored
llvm-svn: 24884
-
Evan Cheng authored
llvm-svn: 24883
-
Chris Lattner authored
use too much stack space, overflowing the stack for large functions. Instead of emitting new SDOperands in each match block, we emit some common ones at the top of SelectCode then reuse them when possible. This reduces the stack size of SelectCode from 28K to 21K. Note that GCC compiles it to 512 bytes :-/ I've filed GCC PR 25505 to track this. llvm-svn: 24882
-
Chris Lattner authored
Only run lower-allocations and lower-select for the simple isel llvm-svn: 24881
-
Chris Lattner authored
For example, instead of emitting this: test: save -40112, %o6, %o6 ;; imm too large add %i6, -40016, %o0 ;; imm too large call caller nop restore %g0, %g0, %g0 retl nop emit this: test: sethi 4194264, %g1 or %g1, 848, %g1 save %o6, %g1, %o6 sethi 4194264, %g1 add %g1, %i6, %g1 add %i1, 944, %o0 call caller nop restore %g0, %g0, %g0 retl nop which doesn't cause the assembler to barf. llvm-svn: 24880
-
Evan Cheng authored
llvm-svn: 24879
-
Evan Cheng authored
llvm-svn: 24878
-
Evan Cheng authored
llvm-svn: 24877
-
Patrick Meredith authored
Added a break that I meant to include originally, for efficiency. Basically it keeps it from trying to add the same node to the node set over and over if it matches multiple given patterns. Also in cases where there are a lot of patterns to be matched, and it matches an early one, this will make the script run slightly faster. It's more there because it logically should be, than anything else, I mean, Python is never going to be fast ;-) llvm-svn: 24876
-
Chris Lattner authored
last night, breaking crafty and twolf. Make sure that the newly found legal nodes are themselves not re-legalized until the next iteration. Also, since this functionality exists now, we can reduce number of legalizer iterations by depending on this behavior instead of having to misuse 'do another iteration' to get the same effect. llvm-svn: 24875
-
Nate Begeman authored
llvm-svn: 24874
-
Evan Cheng authored
llvm-svn: 24873
-
Nate Begeman authored
us to load and store vectors directly at a pointer (offset of zero) by using r0 as the base register. This also requires some asm printer work to satisfy the darwin assembler. For void %foo(<4 x float> * %a) { entry: %tmp1 = load <4 x float> * %a; %tmp2 = add <4 x float> %tmp1, %tmp1 store <4 x float> %tmp2, <4 x float> *%a ret void } We now produce: _foo: lvx v0, 0, r3 vaddfp v0, v0, v0 stvx v0, 0, r3 blr Instead of: _foo: li r2, 0 lvx v0, r2, r3 vaddfp v0, v0, v0 stvx v0, r2, r3 blr llvm-svn: 24872
-
Nate Begeman authored
llvm-svn: 24871
-
Evan Cheng authored
llvm-svn: 24870
-
Evan Cheng authored
llvm-svn: 24869
-
- Dec 19, 2005
-
-
Evan Cheng authored
llvm-svn: 24868
-
Evan Cheng authored
llvm-svn: 24867
-
Chris Lattner authored
creating graphs that cannot be scheduled. llvm-svn: 24866
-
John Criswell authored
projects. llvm-svn: 24865
-
John Criswell authored
Make the dsa-alloc-list and dsa-free-list options hidden. llvm-svn: 24864
-
John Criswell authored
llvm-svn: 24863
-
John Criswell authored
functions that allocate memory. llvm-svn: 24862
-
Jim Laskey authored
llvm-svn: 24861
-
Jim Laskey authored
latency period between the two. llvm-svn: 24860
-
Chris Lattner authored
we were storing into [FP+88] instead of [FP+92]. Improve codegen by emitting [FP+92], instead of emitting a copy of FP into another GPR which wouldn't be coallesced because FP isn't register allocated. llvm-svn: 24859
-