Chris Lattner [Tue, 28 Oct 2008 05:31:31 +0000 (05:31 +0000)]
comment cleanups.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58315
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 28 Oct 2008 05:28:21 +0000 (05:28 +0000)]
If def is in the same mbb as the barrier, spilt the value after the last use before the barrier.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58314
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 28 Oct 2008 01:48:24 +0000 (01:48 +0000)]
Add command line option to limit the number splits to help debugging.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58312
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 28 Oct 2008 00:52:46 +0000 (00:52 +0000)]
Fix the name of the include guard to match the filename.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58310
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 28 Oct 2008 00:47:49 +0000 (00:47 +0000)]
Avoid putting a split past the end of the live range; always shrink wrap live interval in the barrier mbb.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58309
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Mon, 27 Oct 2008 23:31:24 +0000 (23:31 +0000)]
- Fix SUBVERSION string to handle x.x.x version number formats.
- Add VERBOSE=1 flag.
- Specify the LLVM_SUBMIT_VERSION when doing the "make install".
The libLTO.dylib relies upon this flag during that time.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58298
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 27 Oct 2008 23:29:28 +0000 (23:29 +0000)]
Silence a bogus compile time warning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58297
91177308-0d34-0410-b5e6-
96231b3b80d8
David Greene [Mon, 27 Oct 2008 23:24:03 +0000 (23:24 +0000)]
Re-apply 55137 with fixes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58296
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 27 Oct 2008 23:21:01 +0000 (23:21 +0000)]
Remove val# defined by a remat'ed def that is now dead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58294
91177308-0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 27 Oct 2008 22:43:07 +0000 (22:43 +0000)]
Fix bogus comparison of "const char *" with c-string literal. Use strcmp instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58290
91177308-0d34-0410-b5e6-
96231b3b80d8
David Greene [Mon, 27 Oct 2008 21:56:29 +0000 (21:56 +0000)]
Have TableGen emit setSubgraphColor calls under control of a -gen-debug
flag. Then in a debugger developers can set breakpoints at these calls
to see waht is about to be selected and what the resulting subgraph
looks like. This really helps when debugging instruction selection.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58278
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 27 Oct 2008 20:50:02 +0000 (20:50 +0000)]
Return bool (inserted) from StringSet::insert as for StringMap::insert.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58268
91177308-0d34-0410-b5e6-
96231b3b80d8
Cedric Venet [Mon, 27 Oct 2008 19:21:35 +0000 (19:21 +0000)]
Remove tabs from my previous commit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58263
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 27 Oct 2008 18:28:24 +0000 (18:28 +0000)]
rename vec_spat -> vec_splat, pointed out by duncan
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58260
91177308-0d34-0410-b5e6-
96231b3b80d8
David Greene [Mon, 27 Oct 2008 18:17:03 +0000 (18:17 +0000)]
Add setSubgraphColor to color an entire portion of a SelectionDAG. This
will be used to support debug features in TableGen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58257
91177308-0d34-0410-b5e6-
96231b3b80d8
David Greene [Mon, 27 Oct 2008 18:15:15 +0000 (18:15 +0000)]
Add STL-style typedefs and default constructors to make it possible to
use DenseMap in more contexts.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58256
91177308-0d34-0410-b5e6-
96231b3b80d8
David Greene [Mon, 27 Oct 2008 17:38:59 +0000 (17:38 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58255
91177308-0d34-0410-b5e6-
96231b3b80d8
Matthijs Kooijman [Mon, 27 Oct 2008 15:59:43 +0000 (15:59 +0000)]
Remove redundant word in tblgen error message.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58250
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Mon, 27 Oct 2008 15:30:53 +0000 (15:30 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58249
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Mon, 27 Oct 2008 13:18:32 +0000 (13:18 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58246
91177308-0d34-0410-b5e6-
96231b3b80d8
Torok Edwin [Mon, 27 Oct 2008 10:18:45 +0000 (10:18 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58240
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Mon, 27 Oct 2008 10:17:24 +0000 (10:17 +0000)]
formatting tweak for intrinsic
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58239
91177308-0d34-0410-b5e6-
96231b3b80d8
Torok Edwin [Mon, 27 Oct 2008 10:16:27 +0000 (10:16 +0000)]
export an ID for the instructionNamer, allowing analysis/transformation passes
that need it to require it by ID.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58238
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Mon, 27 Oct 2008 09:27:33 +0000 (09:27 +0000)]
Some grammar fixes, and non-invasive format changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58237
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Mon, 27 Oct 2008 08:42:46 +0000 (08:42 +0000)]
Turn on LegalizeTypes, the new type legalization
codegen infrastructure, by default. Please report
any breakage to the mailing lists.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58232
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Mon, 27 Oct 2008 07:28:44 +0000 (07:28 +0000)]
Fix an obvious copy/pasto.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58231
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 27 Oct 2008 07:14:50 +0000 (07:14 +0000)]
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
Chris Lattner [Mon, 27 Oct 2008 07:05:53 +0000 (07:05 +0000)]
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
Chris Lattner [Mon, 27 Oct 2008 06:56:35 +0000 (06:56 +0000)]
no need to print output
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58228
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 27 Oct 2008 06:05:26 +0000 (06:05 +0000)]
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
Chris Lattner [Mon, 27 Oct 2008 04:39:23 +0000 (04:39 +0000)]
mention getresult -> extractvalue (PR2935)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58226
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Mon, 27 Oct 2008 02:10:21 +0000 (02:10 +0000)]
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
Nick Lewycky [Sun, 26 Oct 2008 23:59:36 +0000 (23:59 +0000)]
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
Chris Lattner [Sun, 26 Oct 2008 19:20:47 +0000 (19:20 +0000)]
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
Chris Lattner [Sun, 26 Oct 2008 18:53:07 +0000 (18:53 +0000)]
remove eh output from this test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58196
91177308-0d34-0410-b5e6-
96231b3b80d8
Cedric Venet [Sun, 26 Oct 2008 15:40:44 +0000 (15:40 +0000)]
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
Evan Cheng [Sun, 26 Oct 2008 07:49:03 +0000 (07:49 +0000)]
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
Oscar Fuentes [Sun, 26 Oct 2008 04:26:33 +0000 (04:26 +0000)]
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
Oscar Fuentes [Sun, 26 Oct 2008 00:52:09 +0000 (00:52 +0000)]
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
Oscar Fuentes [Sun, 26 Oct 2008 00:51:05 +0000 (00:51 +0000)]
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
Oscar Fuentes [Sun, 26 Oct 2008 00:50:03 +0000 (00:50 +0000)]
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
Oscar Fuentes [Sun, 26 Oct 2008 00:47:52 +0000 (00:47 +0000)]
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
Bill Wendling [Sun, 26 Oct 2008 00:19:56 +0000 (00:19 +0000)]
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
Evan Cheng [Sat, 25 Oct 2008 23:49:39 +0000 (23:49 +0000)]
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
Evan Cheng [Sat, 25 Oct 2008 23:08:22 +0000 (23:08 +0000)]
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
Dan Gohman [Sat, 25 Oct 2008 17:57:20 +0000 (17:57 +0000)]
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
Dan Gohman [Sat, 25 Oct 2008 17:51:24 +0000 (17:51 +0000)]
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
Dan Gohman [Sat, 25 Oct 2008 17:46:52 +0000 (17:46 +0000)]
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
Gordon Henriksen [Sat, 25 Oct 2008 16:28:35 +0000 (16:28 +0000)]
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
Nicolas Geoffray [Sat, 25 Oct 2008 15:41:43 +0000 (15:41 +0000)]
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
Nicolas Geoffray [Sat, 25 Oct 2008 15:22:06 +0000 (15:22 +0000)]
Generate code for TLS instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58141
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Sat, 25 Oct 2008 14:56:26 +0000 (14:56 +0000)]
Added MIPS release notes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58139
91177308-0d34-0410-b5e6-
96231b3b80d8
Oscar Fuentes [Sat, 25 Oct 2008 03:49:35 +0000 (03:49 +0000)]
CMake: Directed bug reports to llvmbugs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58134
91177308-0d34-0410-b5e6-
96231b3b80d8
Oscar Fuentes [Sat, 25 Oct 2008 03:40:32 +0000 (03:40 +0000)]
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
Oscar Fuentes [Sat, 25 Oct 2008 03:29:36 +0000 (03:29 +0000)]
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
Oscar Fuentes [Sat, 25 Oct 2008 03:25:11 +0000 (03:25 +0000)]
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
Oscar Fuentes [Sat, 25 Oct 2008 03:19:08 +0000 (03:19 +0000)]
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
Evan Cheng [Sat, 25 Oct 2008 00:52:41 +0000 (00:52 +0000)]
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
Dale Johannesen [Fri, 24 Oct 2008 22:08:01 +0000 (22:08 +0000)]
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
Dale Johannesen [Fri, 24 Oct 2008 21:24:23 +0000 (21:24 +0000)]
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
Dale Johannesen [Fri, 24 Oct 2008 21:20:25 +0000 (21:20 +0000)]
Be kind to non-x86 hosts.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58113
91177308-0d34-0410-b5e6-
96231b3b80d8
Torok Edwin [Fri, 24 Oct 2008 19:23:07 +0000 (19:23 +0000)]
move the note to the correct README
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58104
91177308-0d34-0410-b5e6-
96231b3b80d8
Torok Edwin [Fri, 24 Oct 2008 19:20:05 +0000 (19:20 +0000)]
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
Evan Cheng [Fri, 24 Oct 2008 18:46:44 +0000 (18:46 +0000)]
Fix a pasto.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58102
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Fri, 24 Oct 2008 13:03:10 +0000 (13:03 +0000)]
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
Cedric Venet [Fri, 24 Oct 2008 11:24:33 +0000 (11:24 +0000)]
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
Steve Naroff [Fri, 24 Oct 2008 10:38:57 +0000 (10:38 +0000)]
Add a file to VC++ proj.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58089
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Fri, 24 Oct 2008 06:14:27 +0000 (06:14 +0000)]
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
Evan Cheng [Fri, 24 Oct 2008 05:53:44 +0000 (05:53 +0000)]
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
Nick Lewycky [Fri, 24 Oct 2008 04:00:26 +0000 (04:00 +0000)]
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
Evan Cheng [Fri, 24 Oct 2008 02:05:00 +0000 (02:05 +0000)]
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
Dan Gohman [Fri, 24 Oct 2008 01:57:54 +0000 (01:57 +0000)]
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
Steve Naroff [Fri, 24 Oct 2008 01:21:47 +0000 (01:21 +0000)]
Add file to VC++ project.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58060
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Fri, 24 Oct 2008 01:06:58 +0000 (01:06 +0000)]
Initialize uninitialized variable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58057
91177308-0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 23 Oct 2008 23:49:09 +0000 (23:49 +0000)]
Added raw_fd_ostream::close().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58052
91177308-0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Thu, 23 Oct 2008 23:28:23 +0000 (23:28 +0000)]
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
Evan Cheng [Thu, 23 Oct 2008 20:43:13 +0000 (20:43 +0000)]
Committing a good chunk of the pre-register allocation live interval splitting pass. It's handling simple cases and appear to do good things. Next: avoid splitting an interval multiple times; renumber registers when possible; record stack slot live intervals for coloring; rematerialize defs when possible.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58044
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Thu, 23 Oct 2008 20:41:28 +0000 (20:41 +0000)]
Mark defs and uses of CTR and LR correctly.
Prevents DeadMachineInstructionElim from thinking
things like MTCTR are dead (fixes massive
testsuite breakage at -O0).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58043
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 23 Oct 2008 19:37:34 +0000 (19:37 +0000)]
Make sure to set stdout to binary when writing bitcode files via
std::ostream API.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58042
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Thu, 23 Oct 2008 19:34:23 +0000 (19:34 +0000)]
Fix thinko - the operand number has nothing to do
with the result number.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58041
91177308-0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Thu, 23 Oct 2008 17:20:39 +0000 (17:20 +0000)]
Introduce INT64_C macro and unbreak LLVM on MSVC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58039
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 23 Oct 2008 00:24:51 +0000 (00:24 +0000)]
make this test not depend on how the system header defines memset.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58016
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 22 Oct 2008 23:32:42 +0000 (23:32 +0000)]
Change create*Pass factory functions to return Pass* instead of
LoopPass*.
- Although less precise, this means they can be used in clients
without RTTI (who would otherwise need to include LoopPass.h, which
eventually includes things using dynamic_cast). This was the
simplest solution that presented itself, but I am happy to use a
better one if available.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58010
91177308-0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 22 Oct 2008 23:16:52 +0000 (23:16 +0000)]
Fix incorrect testing for the end of the both strings in CStrInCStrNoCase. This could cause a read-out-of-bounds error if s2 is smaller than s1.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58009
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 22 Oct 2008 22:27:51 +0000 (22:27 +0000)]
remove extraneous #ifdef's
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58006
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 22 Oct 2008 17:39:14 +0000 (17:39 +0000)]
Add raw_ostream versions of WriteBitcodeToFile and BitcodeWriterPass.
- The old versions are still hanging around, but should be migrated
away from.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57989
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Wed, 22 Oct 2008 17:26:06 +0000 (17:26 +0000)]
Remove allocation of unused stack slot.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57987
91177308-0d34-0410-b5e6-
96231b3b80d8
Julien Lerouge [Wed, 22 Oct 2008 16:30:41 +0000 (16:30 +0000)]
Fix for PR2881: fix a small leak exposed by valgrind, using a ManagedStatic.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57984
91177308-0d34-0410-b5e6-
96231b3b80d8
Gordon Henriksen [Wed, 22 Oct 2008 12:41:54 +0000 (12:41 +0000)]
[PR2886] Ignore stderr from ocamlc since it prints unresolvable warnings on some platforms.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57976
91177308-0d34-0410-b5e6-
96231b3b80d8
Gordon Henriksen [Wed, 22 Oct 2008 12:40:55 +0000 (12:40 +0000)]
Regenerate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57975
91177308-0d34-0410-b5e6-
96231b3b80d8
Gordon Henriksen [Wed, 22 Oct 2008 12:40:40 +0000 (12:40 +0000)]
[PR2886] Don't look for ocaml's .opt executables; something in the autoconf/test machinery doesn't handle the period properly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57974
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Wed, 22 Oct 2008 11:49:09 +0000 (11:49 +0000)]
LegalizeTypes soft-float support for fpow.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57973
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Wed, 22 Oct 2008 11:24:12 +0000 (11:24 +0000)]
Get this working with LegalizeTypes: (1) don't
assume that i64 has been turned into a BUILD_PAIR
node (when called from LegalizeTypes this hasn't
happened yet) and don't use a vector shuffle mask
with an illegal element type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57972
91177308-0d34-0410-b5e6-
96231b3b80d8
Torok Edwin [Wed, 22 Oct 2008 09:56:27 +0000 (09:56 +0000)]
Regenerate configure
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57971
91177308-0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Wed, 22 Oct 2008 09:54:13 +0000 (09:54 +0000)]
Unbreak LLVM on the MSVC compiler:
-Bring in int64_t for TableGen/Record.h and TableGen/TGLexer.h
-Define strtoull
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57970
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Wed, 22 Oct 2008 09:42:14 +0000 (09:42 +0000)]
Use spaces rather than tab.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57969
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Wed, 22 Oct 2008 09:23:20 +0000 (09:23 +0000)]
Be nice to CellSPU: for this target getSetCCResultType
may return i8, which can result in SELECT nodes for
which the type of the condition is i8, but there are
no patterns for select with i8 condition. Tweak the
LegalizeTypes logic to avoid this as much as possible.
This isn't a real fix because it is still perfectly
possible to end up with such select nodes - CellSPU
needs to be fixed IMHO.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57968
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Wed, 22 Oct 2008 09:07:29 +0000 (09:07 +0000)]
Port from LegalizeDAG the logic to only generate
ADDC/ADDE/SUBC/SUBE if the target supports it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57967
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Wed, 22 Oct 2008 09:06:24 +0000 (09:06 +0000)]
Add some comments explaining the meaning of a boolean
that is not of type MVT::i1 in SELECT and SETCC nodes.
Relax the LegalizeTypes SELECT condition promotion
sanity checks to allow other condition types than i1.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57966
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Wed, 22 Oct 2008 09:00:33 +0000 (09:00 +0000)]
Temporarily allow the operands of a BUILD_VECTOR
to have a different type to the vector element
type. This should be fairly harmless because in
the past guys like this were being built all over
the place (and were cleaned up when I added this
check). The reason for relaxing this check is
that it helps LegalizeTypes legalize vector
shuffles: the mask is a BUILD_VECTOR that it is
*not always possible* to legalize while keeping it
a BUILD_VECTOR (vector_shuffle requires the mask
to be a BUILD_VECTOR, as opposed to a vector with
the right vector type). With this check it is even
harder to legalize the mask - turning the check off
means that LegalizeTypes manages to legalize almost
all vector shuffles encountered in practice. The
correct solution is to change vector_shuffle to be a
variadic node with the mask built into it as operands.
While waiting for that change, this hack stops the
problem with vector_shuffle from blocking the turning
on of LegalizeTypes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57965
91177308-0d34-0410-b5e6-
96231b3b80d8