Commit Graph

47851 Commits

Author SHA1 Message Date
Evan Cheng
459a7c6b6a Remove special handling of implicit_def. Fix a couple more bugs in liveintervalanalysis and coalescer handling of implicit_def.
Note, isUndef marker must be placed even on implicit_def def operand or else the scavenger will not ignore it. This is necessary because -O0 path does not use liveintervalanalysis, it treats implicit_def just like any other def.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74601 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-01 08:19:36 +00:00
Daniel Dunbar
d6bb283de9 Tweak MCSymbol doxyments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74599 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-01 07:03:41 +00:00
Daniel Dunbar
165e8344d8 llvm-mc: Fill in the rest of tokens for 'as-lex' mode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74598 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-01 06:56:54 +00:00
Owen Anderson
91aef8ba97 Fix the build on OpenBSD.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74597 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-01 06:53:29 +00:00
Daniel Dunbar
80f62d0062 Rename MCValue::isConstant to isAbsolute.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74596 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-01 06:48:00 +00:00
Chris Lattner
87380cb0e0 add some of the new tokens, others are still missing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74595 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-01 06:36:49 +00:00
Daniel Dunbar
0eebb0543f llvm-mc: Emit parsed instructions to the MCStreamer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74594 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-01 06:35:48 +00:00
Daniel Dunbar
abde2982e3 Dump MCInsts in the MC .s printer, for now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74593 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-01 06:35:03 +00:00
Chris Lattner
a0faf7ae55 add comments, privatize interface
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74592 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-01 06:31:49 +00:00
Chris Lattner
36e74871b8 disable some ctors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74591 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-01 06:23:14 +00:00
Chris Lattner
14022f2a5a add some comments to MCSymbol header, make the ctor private so that only MCContext can create these.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74590 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-01 06:21:53 +00:00
Chris Lattner
e18e0c58dc improve comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74589 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-01 06:08:37 +00:00
Chris Lattner
0fd38069cb improve the APIs for creating struct and function types with no arguments/elements
to not have to create a temporary vector (in the API at least).  Patch by Jay Foad!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74584 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-01 04:13:31 +00:00
Chris Lattner
35c28eca62 Fix some fast-isel problems selecting global variable addressing in
pic mode.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74582 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-01 03:27:19 +00:00
Evan Cheng
2578ba26e7 Handle IMPLICIT_DEF with isUndef operand marker, part 2. This patch moves the code to annotate machineoperands to LiveIntervalAnalysis. It also add markers for implicit_def that define physical registers. The rest, is just a lot of details.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74580 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-01 01:59:31 +00:00
Daniel Dunbar
5bcc8bd0c6 Remove unused AsmPrinter OptLevel argument, and propogate.
- This more or less amounts to a revert of r65379. I'm curious to know what
   happened that caused this variable to become unused.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74579 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-01 01:48:54 +00:00
David Goodwin
d1fa120aee Add PIC load and store patterns for Thumb-2.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74577 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-01 00:01:13 +00:00
Owen Anderson
db47ed0925 Add a global context, for easing backwards compatibility.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74574 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-30 23:39:59 +00:00
Daniel Dunbar
d9627e11bf llvm-mc: Introduce method to match a parsed x86 instruction into an MCInst.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74573 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-30 23:38:38 +00:00
Daniel Dunbar
e303503da3 Fill in some methods for the MCValue field of an MCOperand.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74572 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-30 23:37:44 +00:00
Daniel Dunbar
d870b2804b llvm-mc: Accept relocatable expressions when parsing displacements and
immediates.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74568 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-30 23:02:44 +00:00
David Goodwin
6647cea111 Thumb-2 load and store double description. But nothing yet creates them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74566 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-30 22:50:01 +00:00
Daniel Dunbar
374d8bddac llvm-mc: Symbols in a relocatable expression of the (a - b + cst) form are
allowed to be undefined when the expression is seen, we cannot enforce the
same-section requirement until the entire assembly file has been seen.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74565 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-30 22:49:27 +00:00
Bill Wendling
20c568f366 Add an "alignment" field to the MachineFunction object. It makes more sense to
have the alignment be calculated up front, and have the back-ends obey whatever
alignment is decided upon.

This allows for future work that would allow for precise no-op placement and the
like.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74564 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-30 22:38:32 +00:00
David Goodwin
73b8f16b36 Add thumb-2 store word, halfword, and byte.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74555 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-30 22:11:34 +00:00
Andreas Bolka
f67799501c Drop redundant print impl.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74553 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-30 21:33:56 +00:00
Dan Gohman
c39f44b521 Minor code cleanups.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74551 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-30 20:13:32 +00:00
Dan Gohman
38a253ddf7 Reapply 74494, this time removing the conflicting definition of operator<<
in APIntTest.cpp.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74550 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-30 20:10:56 +00:00
David Goodwin
c9a59b5960 Improve Thumb-2 jump table support.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74549 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-30 19:50:22 +00:00
David Greene
f0c3d023ae Add 256-bit memory operand support.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74548 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-30 19:24:59 +00:00
David Goodwin
5e47a9a6e4 Add conditional and unconditional thumb-2 branch. Add thumb-2 jump table.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74543 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-30 18:04:13 +00:00
Owen Anderson
72bf4473a6 Add wrappers for type construction to LLVMContext.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74542 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-30 17:50:28 +00:00
Chris Lattner
2c6f9f7227 add a FAQ.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74538 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-30 17:10:19 +00:00
Owen Anderson
5217007006 Fix up header comments to make Chris happy.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74537 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-30 17:06:46 +00:00
Rafael Espindola
af5f6ba32d Fix PR4485.
Avoid unnecessary duplication of operand 0 of X86::FpSET_ST0_80. This duplication would
cause one register to remain on the stack at the function return.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74534 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-30 16:40:03 +00:00
Daniel Dunbar
697b3780ac Revert my intentional breakage.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74531 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-30 16:26:57 +00:00
Daniel Dunbar
2a4aa97f0d Intentionally break a unittest to test my buildbot gtest command.
- Apologies in advance for the noise.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74530 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-30 16:11:58 +00:00
Daniel Dunbar
b79742cd47 Suppress may-be-used-uninitialized warning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74529 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-30 16:02:47 +00:00
Douglas Gregor
892b507f7c Fix CMake build
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74527 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-30 14:37:26 +00:00
Oscar Fuentes
2b1a6e7581 Fixed assert that checks return value of TlsSetValue.
See http://msdn.microsoft.com/en-us/library/ms686818(VS.85).aspx

Patch by Olaf Krzikalla!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74526 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-30 14:12:28 +00:00
Rafael Espindola
f55715c5c7 Fix PR4484.
This was caused by me confounding FP0 and ST(0).



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74523 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-30 12:18:16 +00:00
Evan Cheng
50564ebc9e Temporarily restore the scavenger implicit_def checking code. MachineOperand isUndef mark is not being put on implicit_def of physical registers (created for parameter passing, etc.).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74519 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-30 09:19:42 +00:00
Evan Cheng
4784f1fc73 Add a bit IsUndef to MachineOperand. This indicates the def / use register operand is defined by an implicit_def. That means it can def / use any register and passes (e.g. register scavenger) can feel free to ignore them.
The register allocator, when it allocates a register to a virtual register defined by an implicit_def, can allocate any physical register without worrying about overlapping live ranges. It should mark all of operands of the said virtual register so later passes will do the right thing.

This is not the best solution. But it should be a lot less fragile to having the scavenger try to track what is defined by implicit_def.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74518 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-30 08:49:04 +00:00
Bill Wendling
527b6e6292 Temporarily revert r74494. It was causing failures in the unit tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74515 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-30 07:05:27 +00:00
Chris Lattner
a44f87f2e7 got confused again
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74514 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-30 06:27:54 +00:00
Chris Lattner
09bc65e62b fix some issues Jeff Yasskin noticed
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74512 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-30 06:20:03 +00:00
Chris Lattner
0af39ea9ef add a note about re-evaluating end() every time through a loop.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74511 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-30 06:13:23 +00:00
Owen Anderson
5ec56cc438 Fix the build on Cygwin. Patch by Aaron Gray.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74510 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-30 05:33:46 +00:00
Chris Lattner
e3821c79bc remove a bogus note.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74509 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-30 05:22:31 +00:00
Chris Lattner
a05ec61684 add a note
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74508 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-30 04:20:46 +00:00