Evan Cheng
23066288fd
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.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58230 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-27 07:14:50 +00:00
Chris Lattner
0fd77a579b
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(-)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58229 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-27 07:05:53 +00:00
Chris Lattner
b457b3c5e7
no need to print output
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58228 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-27 06:56:35 +00:00
Chris Lattner
33210608be
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58227 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-27 06:05:26 +00:00
Chris Lattner
f322a9807a
mention getresult -> extractvalue (PR2935)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58226 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-27 04:39:23 +00:00
Dale Johannesen
622addbe49
Increase default setting of tail-merge-threshold to
...
150, based on llvm-test measurements.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58225 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-27 02:10:21 +00:00
Nick Lewycky
33b1c30b0b
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58221 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-26 23:59:36 +00:00
Chris Lattner
f61ca1eeda
fix PR2953, an off-by-one error handling formatted i/o.
...
Thanks to Török Edwin for the awesome reduced testcase.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58199 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-26 19:20:47 +00:00
Chris Lattner
629b52697b
remove eh output from this test.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58196 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-26 18:53:07 +00:00
Cedric Venet
3bff2df61c
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).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58185 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-26 15:40:44 +00:00
Evan Cheng
aaf510c932
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.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58184 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-26 07:49:03 +00:00
Oscar Fuentes
ac1cfa09d7
Return something (i.e. NULL) from an unimplemented virtual function.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58183 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-26 04:26:33 +00:00
Oscar Fuentes
48ed0f59d5
CMake: If we have clang' under the
tools/' subdirectory, add it to
...
the build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58179 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-26 00:52:09 +00:00
Oscar Fuentes
bcc1db5f0a
CMake: Support for LLVM_USED_LIBS variable, which is the cmake
...
counterpart of USED_LIBS.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58178 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-26 00:51:05 +00:00
Oscar Fuentes
619ce78b21
CMake: Removed unnecessary macro definitions. They are defined in
...
config.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58177 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-26 00:50:03 +00:00
Oscar Fuentes
579e43a44a
CMake: GetTargetTriple: new module for determining the target
...
triple. Assign to LLVM_HOSTTRIPLE so it figures in config.h.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58176 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-26 00:47:52 +00:00
Bill Wendling
9a20afd700
Fix type-o in ExprMapKeyType::operator ==(). The "&&" was missing.
...
Patch by Frits van Bommel!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58175 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-26 00:19:56 +00:00
Evan Cheng
79d5b5acae
Handle cases where there aren't uses in the barrier mbb.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58174 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-25 23:49:39 +00:00
Evan Cheng
95a3f0d99e
Add storeRegTo{StackSlot|Addr} and loadRegFrom{StackSlot|Addr} descriptions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58164 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-25 23:08:22 +00:00
Dan Gohman
5d9759bd04
Make comments and code for QuietWarnings and QuietErrors
...
actually correspond to what their names suggest.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58146 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-25 17:57:20 +00:00
Dan Gohman
048ca55dc1
SDNodes may have at most one Flag result. Update this comment
...
to reflect that.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58145 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-25 17:51:24 +00:00
Dan Gohman
71b7f646de
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58144 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-25 17:46:52 +00:00
Gordon Henriksen
a2cbe6c5b5
Related to PR2911, reject as invalid non-pointer GC roots.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58143 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-25 16:28:35 +00:00
Nicolas Geoffray
46fa139e26
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58142 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-25 15:41:43 +00:00
Nicolas Geoffray
b74f370e43
Generate code for TLS instructions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58141 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-25 15:22:06 +00:00
Bruno Cardoso Lopes
b7e1a4f70d
Added MIPS release notes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58139 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-25 14:56:26 +00:00
Oscar Fuentes
f7e73b98d2
CMake: Directed bug reports to llvmbugs.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58134 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-25 03:49:35 +00:00
Oscar Fuentes
28df32b559
CMake: lib/Target/ARM/AsmPrinter/CMakeLists.txt added.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58133 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-25 03:40:32 +00:00
Oscar Fuentes
de98db33fb
CMake: MSVC++ no longer uses a special configuration method.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58132 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-25 03:29:36 +00:00
Oscar Fuentes
cd6213233e
CMake: Sync'ed DataTypes.h.cmake with DataTypes.h.in.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58131 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-25 03:25:11 +00:00
Oscar Fuentes
ddbbb4fe89
CMake: Cross-platform support for using pre-generated llvmAsmParser.cpp and llvmAsmParser.h.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58130 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-25 03:19:08 +00:00
Evan Cheng
78dfef771b
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.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58129 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-25 00:52:41 +00:00
Dale Johannesen
f14df02340
Mark MFCR as reading all condition code registers.
...
Prevents some more overzealous deletions (mostly
in AltiVec code).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58121 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-24 22:08:01 +00:00
Dale Johannesen
c12e5812be
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58116 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-24 21:24:23 +00:00
Dale Johannesen
47106ba658
Be kind to non-x86 hosts.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58113 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-24 21:20:25 +00:00
Torok Edwin
61df3b751a
move the note to the correct README
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58104 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-24 19:23:07 +00:00
Torok Edwin
db1b3bc276
add note about va_arg code on x86 and x86-64
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58103 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-24 19:20:05 +00:00
Evan Cheng
56ab0def90
Fix a pasto.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58102 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-24 18:46:44 +00:00
Duncan Sands
4047f4a0b4
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58092 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-24 13:03:10 +00:00
Cedric Venet
389b715e0f
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.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58090 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-24 11:24:33 +00:00
Steve Naroff
1125406a30
Add a file to VC++ proj.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58089 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-24 10:38:57 +00:00
Nick Lewycky
04aa2c3520
Don't try to create a mask when we don't need one. Fixes a crash.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58075 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-24 06:14:27 +00:00
Evan Cheng
2efe3fd79a
Fix a end() dereference; remove an abort() that wasn't meant to be left in.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58072 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-24 05:53:44 +00:00
Nick Lewycky
79cce5c51b
Add value range analyzing of Add and Sub.
...
Understand that mul %x, 1 = %x.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58069 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-24 04:00:26 +00:00
Evan Cheng
06587497dc
Avoid splitting an interval multiple times; avoid splitting re-materializable val# (for now).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58068 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-24 02:05:00 +00:00
Dan Gohman
c9f3cc3bda
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58066 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-24 01:57:54 +00:00
Steve Naroff
b1e5edc27e
Add file to VC++ project.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58060 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-24 01:21:47 +00:00
Dale Johannesen
fea9088030
Initialize uninitialized variable.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58057 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-24 01:06:58 +00:00
Ted Kremenek
43d1f02b54
Added raw_fd_ostream::close().
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58052 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-23 23:49:09 +00:00
Steve Naroff
93fbe75a94
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58048 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-23 23:28:23 +00:00