1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 11:02:59 +02:00
Commit Graph

42094 Commits

Author SHA1 Message Date
Evan Cheng
69c2588244 Correct way to handle CONSTPOOL_ENTRY instructions.
llvm-svn: 58409
2008-10-29 23:55:43 +00:00
Evan Cheng
5e8fa6ef36 Add debugging support.
llvm-svn: 58408
2008-10-29 23:55:17 +00:00
Evan Cheng
479adf22ee Let target resolve some relocation results.
llvm-svn: 58407
2008-10-29 23:54:46 +00:00
Evan Cheng
321081da57 This is not needed anymore.
llvm-svn: 58406
2008-10-29 23:54:10 +00:00
Evan Cheng
e82f1335c7 Add a bit to MachineRelocation that tells JIT that target is responsible for resolving the address. e.g. ARM constpool.
llvm-svn: 58405
2008-10-29 23:53:42 +00:00
Nate Begeman
e621f0539e Fix PEXTRQ encoding
llvm-svn: 58403
2008-10-29 23:07:17 +00:00
Chris Lattner
a99dc2692a add testcase for PR2964
llvm-svn: 58393
2008-10-29 18:42:22 +00:00
Dale Johannesen
ff738e8897 Add a RM pseudoreg for the rounding mode, which
allows ppcf128->int conversion to work with
DeadInstructionElimination.  This is now turned
off but RM is harmless.  It does not do a complete
job of modeling the rounding mode.

Revert marking MFCR as using all 7 CR subregisters;
while correct, this caused the problem in PR 2964,
plus the local RA crash noted in the comments.
This was needed to make DeadInstructionElimination,
but as we are not running that, it is backed out
for now.  Eventually it should go back in and the
other problems fixed where they're broken.

llvm-svn: 58391
2008-10-29 18:26:45 +00:00
Duncan Sands
c5e736bb1b Testcase for PR2917.
llvm-svn: 58389
2008-10-29 18:06:20 +00:00
Duncan Sands
4f4d9d24a4 Uniformize capitalization of NodeId.
llvm-svn: 58386
2008-10-29 17:52:12 +00:00
Chris Lattner
4af91a146a Fix PR2967 by not deleting volatile load/stores that occur before unreachable.
I don't really see this as being needed, but there is little harm from doing
it.

llvm-svn: 58385
2008-10-29 17:46:26 +00:00
Torok Edwin
f4b6f018ef fix typo
llvm-svn: 58384
2008-10-29 16:32:06 +00:00
Duncan Sands
caffd6f944 Make the declaration of bzero match size_t on
x86-64-linux.

llvm-svn: 58383
2008-10-29 15:57:37 +00:00
Duncan Sands
fd032c5bef Fix PR2977: LegalizeTypes support for expanding
VAARG.

llvm-svn: 58379
2008-10-29 14:25:28 +00:00
Duncan Sands
ada9e7a16d Add sanity checking for BUILD_PAIR (I noticed the
other day that PPC custom lowering could create
a BUILD_PAIR of two f64 with a result type of...
f64! - already fixed).  Fix a place that triggers
the sanity check.

llvm-svn: 58378
2008-10-29 14:22:20 +00:00
Evan Cheng
6125b9e097 - More pre-split fixes: spill slot live interval computation bug; restore point bug.
- If a def is spilt, remember its spill index to allow its reuse.

llvm-svn: 58375
2008-10-29 08:39:34 +00:00
Duncan Sands
3faee6737e Fix a FIXME: in ReplaceNodeWith, if the new node
is morphed by AnalyzeNewNode into a previously
processed node, and different result values of
that node are remapped to values with different
nodes, then we could end up using wrong values
here [we were assuming that all results remap
to values with the same underlying node].  This
seems theoretically possible, but I don't have
a testcase.  The meat of the patch is in the
changes to AnalyzeNewNode/AnalyzeNewValue and
ReplaceNodeWith.  While there, I changed names
like RemapNode to RemapValue, since it really
remaps values.  To tell the truth, I would be
much happier if we were only remapping nodes
(it would simplify a bunch of logic, and allow
for some cute speedups) but I haven't yet worked
out how to do that.

llvm-svn: 58372
2008-10-29 06:42:19 +00:00
Duncan Sands
cb5432cdb4 Fix 80 column violations.
llvm-svn: 58371
2008-10-29 06:33:00 +00:00
Duncan Sands
790e7e655b Fix 80 column violations.
llvm-svn: 58370
2008-10-29 06:31:03 +00:00
Evan Cheng
cd21d433bb - Rewrite code that update register live interval that's split.
- Create and update spill slot live intervals.
- Lots of bug fixes.

llvm-svn: 58367
2008-10-29 05:06:14 +00:00
Oscar Fuentes
c2a8e16a50 CMake: Removed some cruft.
llvm-svn: 58358
2008-10-29 02:33:15 +00:00
Daniel Dunbar
2265cf485e Factor shouldInline method out of Inliner.
- No functionality change.

llvm-svn: 58355
2008-10-29 01:02:02 +00:00
David Greene
b33593aa75 Don't force things to be Value * when they're not.
llvm-svn: 58354
2008-10-29 00:30:54 +00:00
Daniel Dunbar
e2fe2de3f4 Assorted comment/naming fixes, 80-col violations, and reindentation.
- No functionality change.

llvm-svn: 58352
2008-10-28 23:24:26 +00:00
Dan Gohman
3ceee36545 (A & sext(C)) | (B & ~sext(C) -> C ? A : B
llvm-svn: 58351
2008-10-28 22:38:57 +00:00
Dan Gohman
eb869eb116 Take Chris' suggestion and define EnableFastISelVerbose and
EnableFastISelAbort variables for Release mode instead of
using ifdefs in the code.

llvm-svn: 58350
2008-10-28 20:35:31 +00:00
Chris Lattner
5e1737662b llvm-ld doesn't have a -march option. This fixes PR2961
llvm-svn: 58345
2008-10-28 20:05:06 +00:00
Daniel Dunbar
ffd2bedc44 Reuse PrintEscapedString for printing names in .ll
- One functionality change, '\\' in a name is now printed as a hex
   escape instead of "\\\\". This is consistent with other users of
   PrintEscapedString.

llvm-svn: 58343
2008-10-28 19:33:02 +00:00
Dan Gohman
5a2a8f4b9b Protect the code for fast-isel debugging with #ifndef NDEBUG.
llvm-svn: 58340
2008-10-28 19:08:46 +00:00
Dan Gohman
1218f7e751 Add some more information to the top-level comment for this file.
llvm-svn: 58339
2008-10-28 18:47:37 +00:00
Jim Grosbach
d735f403a0 Support for constant islands in the ARM JIT.
Since the ARM constant pool handling supercedes the standard LLVM constant
pool entirely, the JIT emitter does not allocate space for the constants,
nor initialize the memory. The constant pool is considered part of the 
instruction stream.

Likewise, when resolving relocations into the constant pool, a hook into
the target back end is used to resolve from the constant ID# to the
address where the constant is stored.

For now, the support in the ARM emitter is limited to 32-bit integer. Future
patches will expand this to the full range of constants necessary.

llvm-svn: 58338
2008-10-28 18:25:49 +00:00
Torok Edwin
62e6eac94a fix prototype of print, it is (llvm/Pass.h):
virtual void print(std::ostream &O, const Module *M) const;
instead of
  virtual void print(llvm::OStream &O, const Module *M) const;
as the docs say

llvm-svn: 58337
2008-10-28 17:29:23 +00:00
Evan Cheng
f503542218 Avoid calls to setSubgraphColor in release mode. They generate lots of error messages and slow down compilation.
llvm-svn: 58336
2008-10-28 17:23:13 +00:00
Tanya Lattner
7bd0aec942 Do not allow a user to set the operand for a constant.
llvm-svn: 58335
2008-10-28 17:22:40 +00:00
Torok Edwin
12f71cb784 fix duplicate anchor names, and broken anchor links from the TOC
llvm-svn: 58332
2008-10-28 16:54:34 +00:00
Duncan Sands
a64641fbd2 Fix darwin ppc llvm-gcc build breakage: intercept
ppcf128 to i32 conversion and expand it into a code
sequence like in LegalizeDAG.  This needs custom
ppc lowering of FP_ROUND_INREG, so turn that on and
make it work with LegalizeTypes.  Probably PPC should
simply custom lower the original conversion.

llvm-svn: 58329
2008-10-28 15:00:32 +00:00
Duncan Sands
da35d6f7d6 Turn off LegalizeTypes for this test for the
moment, while waiting for a proper solution.

llvm-svn: 58324
2008-10-28 09:55:04 +00:00
Duncan Sands
ce82e0aa82 Fix a testcase provided by Bill in which the node
id could end up being wrong mostly because of
forgetting to remap new nodes that morphed into
processed nodes through CSE.

llvm-svn: 58323
2008-10-28 09:38:36 +00:00
Chris Lattner
508a62823e Don't produce invalid comparisons after legalize.
llvm-svn: 58320
2008-10-28 07:11:07 +00:00
Chris Lattner
e39269e22a fix some whitespace stuff
llvm-svn: 58319
2008-10-28 07:10:51 +00:00
Chris Lattner
1efb3a30c8 fit in 80 cols
llvm-svn: 58318
2008-10-28 06:20:17 +00:00
Chris Lattner
63e92876e0 Fix a nasty miscompilation of 176.gcc on linux/x86 where we synthesized
a memset using 16-byte XMM stores, but where the stack realignment code
didn't work.  Until it does (PR2962) disable use of xmm regs in memcpy
and memset formation for linux and other targets with insufficiently
aligned stacks.

This is part of PR2888

llvm-svn: 58317
2008-10-28 05:49:35 +00:00
Chris Lattner
d9f28870cf more comment cleanups.
llvm-svn: 58316
2008-10-28 05:32:08 +00:00
Chris Lattner
b2d576facf comment cleanups.
llvm-svn: 58315
2008-10-28 05:31:31 +00:00
Evan Cheng
8f9bfa5bff If def is in the same mbb as the barrier, spilt the value after the last use before the barrier.
llvm-svn: 58314
2008-10-28 05:28:21 +00:00
Evan Cheng
6242a4f47b Add command line option to limit the number splits to help debugging.
llvm-svn: 58312
2008-10-28 01:48:24 +00:00
Dan Gohman
8edffdd299 Fix the name of the include guard to match the filename.
llvm-svn: 58310
2008-10-28 00:52:46 +00:00
Evan Cheng
9bbf76a1e9 Avoid putting a split past the end of the live range; always shrink wrap live interval in the barrier mbb.
llvm-svn: 58309
2008-10-28 00:47:49 +00:00
Bill Wendling
7ca989e778 - 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.

llvm-svn: 58298
2008-10-27 23:31:24 +00:00
Evan Cheng
420490d6c4 Silence a bogus compile time warning.
llvm-svn: 58297
2008-10-27 23:29:28 +00:00