1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-25 04:02:41 +01:00
Commit Graph

42037 Commits

Author SHA1 Message Date
David Greene
5015610892 Add setSubgraphColor to color an entire portion of a SelectionDAG. This
will be used to support debug features in TableGen.

llvm-svn: 58257
2008-10-27 18:17:03 +00:00
David Greene
e8f05397ca Add STL-style typedefs and default constructors to make it possible to
use DenseMap in more contexts.

llvm-svn: 58256
2008-10-27 18:15:15 +00:00
David Greene
78744a795a Fix PR2634. Create new virtual registers from spills early so that we
can give it the same stack slot as the spilled interval if it is folded.
This prevents the fold/unfold code from pointing to the wrong register.

llvm-svn: 58255
2008-10-27 17:38:59 +00:00
Matthijs Kooijman
0e4cabbceb Remove redundant word in tblgen error message.
llvm-svn: 58250
2008-10-27 15:59:43 +00:00
Duncan Sands
22451e0303 Fix UpdateNodeOperands so that it does CSE of calls
(and a bunch of other node types).  While there, I
added a doNotCSE predicate and used it to reduce code
duplication (some of the duplicated code was wrong...).
This fixes ARM/cse-libcalls.ll when using LegalizeTypes. 

llvm-svn: 58249
2008-10-27 15:30:53 +00:00
Duncan Sands
039edb065f Fix a bug in which a node could be added to the
worklist twice: UpdateNodeOperands could morph
a new node into a node already on the worklist.
We would then recalculate the NodeId for this
existing node and add it to the worklist.  The
testcase is ARM/cse-libcalls.ll, the problem
showing up once UpdateNodeOperands is taught to
do CSE for calls.

llvm-svn: 58246
2008-10-27 13:18:32 +00:00
Torok Edwin
ebd7fd5e7a Avoid crashing if instruction is not part of a loop.
If it is not part of a loop it is obviously invariant wrt to all loops.

llvm-svn: 58240
2008-10-27 10:18:45 +00:00
Gabor Greif
0269c21562 formatting tweak for intrinsic
llvm-svn: 58239
2008-10-27 10:17:24 +00:00
Torok Edwin
0c0acebd09 export an ID for the instructionNamer, allowing analysis/transformation passes
that need it to require it by ID.

llvm-svn: 58238
2008-10-27 10:16:27 +00:00
Bill Wendling
028aeb5f8e Some grammar fixes, and non-invasive format changes.
llvm-svn: 58237
2008-10-27 09:27:33 +00:00
Duncan Sands
a6bbc047d5 Turn on LegalizeTypes, the new type legalization
codegen infrastructure, by default.  Please report
any breakage to the mailing lists.

llvm-svn: 58232
2008-10-27 08:42:46 +00:00
Nick Lewycky
c1f8a23665 Fix an obvious copy/pasto.
llvm-svn: 58231
2008-10-27 07:28:44 +00:00
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