Evan Cheng
3bcbccf563
For now, don't split live intervals around x87 stack register barriers. FpGET_ST0_80 must be right after a call instruction (and ADJCALLSTACKUP) so we need to find a way to prevent reload of x87 registers between them.
...
llvm-svn: 58230
2008-10-27 07:14:50 +00:00
Chris Lattner
17afc211e7
Rewrite all the 'PromoteLocallyUsedAlloca[s]' logic. With the power of
...
LargeBlockInfo, we can now dramatically simplify their implementation
and speed them up at the same time. Now the code has time proportional
to the number of uses of the alloca, not the size of the block.
This also eliminates code that tried to batch up different allocas which
are used in the same blocks, and eliminates the 'retry list' logic which
was baroque and no unneccesary. In addition to being a speedup for crazy
cases, this is also a nice cleanup:
PromoteMemoryToRegister.cpp | 270 +++++++++++++++-----------------------------
1 file changed, 96 insertions(+), 174 deletions(-)
llvm-svn: 58229
2008-10-27 07:05:53 +00:00
Chris Lattner
a57ac16183
no need to print output
...
llvm-svn: 58228
2008-10-27 06:56:35 +00:00
Chris Lattner
39c853cf16
Add a new LargeBlockInfo helper, which is just a wrapper around
...
a trivial dense map. Use this in RewriteSingleStoreAlloca to
avoid aggressively rescanning blocks over and over again. This
fixes PR2925, speeding up mem2reg on the testcase in that bug
from 4.56s to 0.02s in a debug build on my machine.
llvm-svn: 58227
2008-10-27 06:05:26 +00:00
Chris Lattner
7351188cb9
mention getresult -> extractvalue (PR2935)
...
llvm-svn: 58226
2008-10-27 04:39:23 +00:00
Dale Johannesen
d0a0ce909b
Increase default setting of tail-merge-threshold to
...
150, based on llvm-test measurements.
llvm-svn: 58225
2008-10-27 02:10:21 +00:00
Nick Lewycky
6288e2288d
Remove -check-exit-code from bugpoint. This is subsumed by -append-exit-code.
...
Note that -check-exit-code was on by default while -append-exit-code is not.
llvm-svn: 58221
2008-10-26 23:59:36 +00:00
Chris Lattner
3fed68158c
fix PR2953, an off-by-one error handling formatted i/o.
...
Thanks to Török Edwin for the awesome reduced testcase.
llvm-svn: 58199
2008-10-26 19:20:47 +00:00
Chris Lattner
9737bef5a1
remove eh output from this test.
...
llvm-svn: 58196
2008-10-26 18:53:07 +00:00
Cedric Venet
f75bc692bb
Add a default constructor to AsmWriterOperand to make VS2008sp1 happy. (AsmWriterOperand is used in a std::pair, and VS need to generate the default constructor of this pair).
...
llvm-svn: 58185
2008-10-26 15:40:44 +00:00
Evan Cheng
8a7f04e7c2
Do not shrink wrap live interval in a mbb if it's livein any of its successor blocks. The mbb can be revisited again after all of the successors are processed.
...
llvm-svn: 58184
2008-10-26 07:49:03 +00:00
Oscar Fuentes
791d14f571
Return something (i.e. NULL) from an unimplemented virtual function.
...
llvm-svn: 58183
2008-10-26 04:26:33 +00:00
Oscar Fuentes
1fcfb67930
CMake: If we have clang' under the
tools/' subdirectory, add it to
...
the build.
llvm-svn: 58179
2008-10-26 00:52:09 +00:00
Oscar Fuentes
7fa2179afa
CMake: Support for LLVM_USED_LIBS variable, which is the cmake
...
counterpart of USED_LIBS.
llvm-svn: 58178
2008-10-26 00:51:05 +00:00
Oscar Fuentes
8286c161d3
CMake: Removed unnecessary macro definitions. They are defined in
...
config.h
llvm-svn: 58177
2008-10-26 00:50:03 +00:00
Oscar Fuentes
a96ce230e0
CMake: GetTargetTriple: new module for determining the target
...
triple. Assign to LLVM_HOSTTRIPLE so it figures in config.h.
llvm-svn: 58176
2008-10-26 00:47:52 +00:00
Bill Wendling
617f3d4b3a
Fix type-o in ExprMapKeyType::operator ==(). The "&&" was missing.
...
Patch by Frits van Bommel!
llvm-svn: 58175
2008-10-26 00:19:56 +00:00
Evan Cheng
db1c135283
Handle cases where there aren't uses in the barrier mbb.
...
llvm-svn: 58174
2008-10-25 23:49:39 +00:00
Evan Cheng
7156715793
Add storeRegTo{StackSlot|Addr} and loadRegFrom{StackSlot|Addr} descriptions.
...
llvm-svn: 58164
2008-10-25 23:08:22 +00:00
Dan Gohman
64431fe1db
Make comments and code for QuietWarnings and QuietErrors
...
actually correspond to what their names suggest.
llvm-svn: 58146
2008-10-25 17:57:20 +00:00
Dan Gohman
e7c43e94b0
SDNodes may have at most one Flag result. Update this comment
...
to reflect that.
llvm-svn: 58145
2008-10-25 17:51:24 +00:00
Dan Gohman
66e878f316
Move the code that adds the DeadMachineInstructionElimPass from
...
target-independent code to target-specific code. This prevents it
from running on targets that aren't using fast-isel.
In addition to saving compile time, this addresses the problem
that not all targets are prepared for it. In order to use this
pass, all instructions must declare all their fixed uses and
defs of physical registers.
llvm-svn: 58144
2008-10-25 17:46:52 +00:00
Gordon Henriksen
e5b0182e94
Related to PR2911, reject as invalid non-pointer GC roots.
...
llvm-svn: 58143
2008-10-25 16:28:35 +00:00
Nicolas Geoffray
ce30b5caf0
Support for allocation of TLS variables in the JIT. Allocation of a global
...
variable is moved to the execution engine. The JIT calls the TargetJITInfo
to allocate thread local storage. Currently, only linux/x86 knows how to
allocate thread local global variables.
llvm-svn: 58142
2008-10-25 15:41:43 +00:00
Nicolas Geoffray
323dc44a69
Generate code for TLS instructions.
...
llvm-svn: 58141
2008-10-25 15:22:06 +00:00
Bruno Cardoso Lopes
5a4985a242
Added MIPS release notes.
...
llvm-svn: 58139
2008-10-25 14:56:26 +00:00
Oscar Fuentes
995841f983
CMake: Directed bug reports to llvmbugs.
...
llvm-svn: 58134
2008-10-25 03:49:35 +00:00
Oscar Fuentes
51e77b801a
CMake: lib/Target/ARM/AsmPrinter/CMakeLists.txt added.
...
llvm-svn: 58133
2008-10-25 03:40:32 +00:00
Oscar Fuentes
edaf4cded2
CMake: MSVC++ no longer uses a special configuration method.
...
llvm-svn: 58132
2008-10-25 03:29:36 +00:00
Oscar Fuentes
5021ba82e0
CMake: Sync'ed DataTypes.h.cmake with DataTypes.h.in.
...
llvm-svn: 58131
2008-10-25 03:25:11 +00:00
Oscar Fuentes
64fd2ab298
CMake: Cross-platform support for using pre-generated llvmAsmParser.cpp and llvmAsmParser.h.
...
llvm-svn: 58130
2008-10-25 03:19:08 +00:00
Evan Cheng
0c78ace7dc
If val# def is ~0U, meaning it's defined by a PHI, and it's previously split, spill before the barrier because it's impossible to determine if all the defs are spilled in the same spill slot.
...
llvm-svn: 58129
2008-10-25 00:52:41 +00:00
Dale Johannesen
20f93b45e7
Mark MFCR as reading all condition code registers.
...
Prevents some more overzealous deletions (mostly
in AltiVec code).
llvm-svn: 58121
2008-10-24 22:08:01 +00:00
Dale Johannesen
a3d7e7e900
Rewrite logic to figure out whether LR needs to
...
be saved/restored in the prolog/epilog. We need
to do this iff something in the function stores
into it.
llvm-svn: 58116
2008-10-24 21:24:23 +00:00
Dale Johannesen
834f23dbed
Be kind to non-x86 hosts.
...
llvm-svn: 58113
2008-10-24 21:20:25 +00:00
Torok Edwin
e0ecce06a0
move the note to the correct README
...
llvm-svn: 58104
2008-10-24 19:23:07 +00:00
Torok Edwin
5560590122
add note about va_arg code on x86 and x86-64
...
llvm-svn: 58103
2008-10-24 19:20:05 +00:00
Evan Cheng
cfd2ecd29f
Fix a pasto.
...
llvm-svn: 58102
2008-10-24 18:46:44 +00:00
Duncan Sands
4b148a29ef
Fix translateX86CC: if SetCCOpcode is SETULE and
...
LHS is a foldable load, then LHS and RHS are swapped
and SetCCOpcode is changed to SETUGT. But the later
code is expecting operands to be the wrong way round
for SETUGT, but they are not in this case, resulting
in an inverted compare. The solution is to move the
load normalization before the correction for SETUGT.
This bug was tickled by LegalizeTypes which happened
to legalize the testcase slightly differently to
LegalizeDAG.
llvm-svn: 58092
2008-10-24 13:03:10 +00:00
Cedric Venet
c5bd480a57
Modify the cmake build system so that if it doesn't find bison, it will use the pregenerated file in from the svn (.cvs). Work only for windows for the moment. Tested on Vista64 with MSVC2008express.
...
llvm-svn: 58090
2008-10-24 11:24:33 +00:00
Steve Naroff
c20185c7ef
Add a file to VC++ proj.
...
llvm-svn: 58089
2008-10-24 10:38:57 +00:00
Nick Lewycky
44356e13da
Don't try to create a mask when we don't need one. Fixes a crash.
...
llvm-svn: 58075
2008-10-24 06:14:27 +00:00
Evan Cheng
efb8edb805
Fix a end() dereference; remove an abort() that wasn't meant to be left in.
...
llvm-svn: 58072
2008-10-24 05:53:44 +00:00
Nick Lewycky
3d4f21006b
Add value range analyzing of Add and Sub.
...
Understand that mul %x, 1 = %x.
llvm-svn: 58069
2008-10-24 04:00:26 +00:00
Evan Cheng
a7a0aabf99
Avoid splitting an interval multiple times; avoid splitting re-materializable val# (for now).
...
llvm-svn: 58068
2008-10-24 02:05:00 +00:00
Dan Gohman
ed90fd3ecf
Fix constant-offset emission for x86-64 absolute addresses. This
...
fixes a bunch of test-suite JIT failures on x86-64 in
-relocation-model=static mode.
llvm-svn: 58066
2008-10-24 01:57:54 +00:00
Steve Naroff
822787593f
Add file to VC++ project.
...
llvm-svn: 58060
2008-10-24 01:21:47 +00:00
Dale Johannesen
9edd60f710
Initialize uninitialized variable.
...
llvm-svn: 58057
2008-10-24 01:06:58 +00:00
Ted Kremenek
b04b85f615
Added raw_fd_ostream::close().
...
llvm-svn: 58052
2008-10-23 23:49:09 +00:00
Steve Naroff
ea17111230
Changes to make the Windows build work...
...
- Add a file to the VC++ project.
- Make sure the clang driver links against the Transforms library.
- Incorporate changes from patch by Dan Gohman.
llvm-svn: 58048
2008-10-23 23:28:23 +00:00