Chris Lattner
e736ed1947
add a method
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25675 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-27 02:09:16 +00:00
Chris Lattner
cedc6f4b30
PHI and INLINEASM are now built-in instructions provided by Target.td
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25674 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-27 01:46:15 +00:00
Chris Lattner
aa77d77a43
PHI and INLINEASM are now builtin instructions provided by Target.td
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25673 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-27 01:45:06 +00:00
Chris Lattner
f52e2618f3
If we want to emit things in enum order, use getInstructionsByEnumValue to
...
get the order, don't compute it ourselves.
Don't emit stuff like (14<<0), emit 14 instead.
Don't attempt to get target properties for builtin instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25672 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-27 01:44:09 +00:00
Chris Lattner
387e4bdf00
There is at least a 'noitinerary' itinerary now
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25671 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-27 01:41:55 +00:00
Chris Lattner
3b0d1d71d1
Add a default NoItinerary class for targets to use.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25670 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-27 01:41:38 +00:00
Chris Lattner
188454ae2b
Don't emit JIT code for these instructions
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25669 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-27 01:39:38 +00:00
Chris Lattner
acc43bf4ab
Teach the scheduler to emit the appropriate INLINEASM MachineInstr for an
...
ISD::INLINEASM node.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25668 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-26 23:28:04 +00:00
Chris Lattner
4ed88eb822
Add a common INLINEASM opcode
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25667 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-26 23:27:02 +00:00
Chris Lattner
fabcb7abc5
Teach the dag selectors to select InlineAsm nodes.
...
Aren't we happy the pattern selectors are almost all gone?
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25666 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-26 23:08:55 +00:00
Jim Laskey
511731786e
Dropped DwarfWriter::
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25665 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-26 22:25:04 +00:00
Chris Lattner
ce7518ce92
initial selectiondag support for new INLINEASM node. Note that inline asms
...
with outputs or inputs are not supported yet. :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25664 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-26 22:24:51 +00:00
Chris Lattner
7572eb81ee
Add new INLINEASM node
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25663 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-26 22:23:45 +00:00
Jim Laskey
6e87c0e029
Use global information to fill out Dwarf compile units.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25662 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-26 21:22:49 +00:00
Jeff Cohen
9471c8a93b
Improve compatibility with VC2005, patch by Morten Ofstad!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25661 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-26 20:41:32 +00:00
Chris Lattner
4ccb070f15
Implement a method for inline asm support
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25660 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-26 20:37:03 +00:00
Chris Lattner
8211e82e40
add some methods for case-insensitive string compares
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25659 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-26 20:36:29 +00:00
Jim Laskey
dc42989b55
Update files lists.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25658 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-26 20:32:00 +00:00
Jim Laskey
3e0be526bf
Use find instead of lower_bounds.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25657 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-26 20:30:51 +00:00
Chris Lattner
bc9ae377d9
Add a method for inline asm support.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25656 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-26 20:27:33 +00:00
Jim Laskey
b3e789ac25
Set up MachineDebugInfo to scan for debug information form "llvm.db"g globals.
...
Global Variable information is now pulled from "llvm.dbg.globals"
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25655 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-26 20:21:46 +00:00
Jim Laskey
e4a359e43b
Add support to find existing entries.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25654 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-26 20:09:35 +00:00
Chris Lattner
38f7373018
Improve compatibility with VC2005, patch by Morten Ofstad!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25653 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-26 19:55:20 +00:00
Andrew Lenharth
9d90144099
dynamically allocate plugin space as needed
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25652 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-26 19:38:58 +00:00
Evan Cheng
1feeeecf4c
Another folding problem: if a node r/w chain or flag, don't fold it if it
...
has already been selected. The number of use check is not strong enough since
a node can be replaced with newly created target node. e.g. If the original
node has two uses, when it is selected for one of the uses it is replaced with
another. Each node now has a single use but isel still should not fold it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25651 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-26 19:13:45 +00:00
Andrew Lenharth
e4da1ddada
Pass plugins on to children when optimizing.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25650 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-26 18:37:21 +00:00
Andrew Lenharth
4b934766bd
Remember plugins should someone like bugpoint want to know them.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25649 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-26 18:36:50 +00:00
Andrew Lenharth
c20dee3566
added a couple test cases, including the new vaarg breakage
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25648 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-26 17:43:42 +00:00
Jeff Cohen
83cd8a0a6f
Teach Visual Studio about X86 subtargets.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25647 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-26 16:49:00 +00:00
Jim Laskey
a550f63833
Split out Dwarf constants for use outside DwarfWriter.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25646 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-26 14:45:22 +00:00
Evan Cheng
97c7fc351e
Added preliminary x86 subtarget support.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25645 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-26 09:53:06 +00:00
Duraid Madina
b0636041c8
fix stack corruption! Previously, 16-byte whole-FP-register stores were
...
being treated as needing only 8 bytes (though they were 16 byte aligned.)
This should fix a bunch of tests - anyone have any comments, though?
- in Target.td , SpillSize and SpillAlignment seem dead - is this what
Size and Alignment do now?
- in CodeGenRegisters.h/CodeGenTarget.cpp , DeclaredSpillSize and
DeclaredSpillAlignment seem dead.
- there are a bunch of comments here and there that don't clearly
distinguish between 'size' and 'spillsize' etc. hmm.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25644 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-26 09:45:03 +00:00
Duraid Madina
d92f116a1c
some hoovering
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25643 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-26 09:08:31 +00:00
Chris Lattner
4dcfaac2e3
Rest of subtarget support, remove references to ppc
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25642 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-26 07:22:22 +00:00
Chris Lattner
0d170a7969
Add trivial subtarget support
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25641 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-26 06:51:21 +00:00
Andrew Lenharth
9e234856fe
minor renaming
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25640 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-26 03:24:15 +00:00
Andrew Lenharth
cd1544eede
allow R28 to be used for frame calculations without entirely removing it from circulation
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25639 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-26 03:22:07 +00:00
Evan Cheng
67caa39e4c
Work around some x86 Darwin assembler bugs
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25638 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-26 02:27:43 +00:00
Chris Lattner
f0b415f178
add method for constraint parsing
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25637 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-26 02:21:59 +00:00
Chris Lattner
507fdbc0e8
add methods for constraint parsing
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25636 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-26 02:21:42 +00:00
Evan Cheng
8eab3608de
Add a FIXME comment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25635 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-26 02:13:31 +00:00
Evan Cheng
9bba894596
When trying to fold X86::SETCC into a Select, make a copy if it has more than
...
one use. This allows more CMOV instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25634 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-26 02:13:10 +00:00
Chris Lattner
f47a6b4882
teach the cloner to handle inline asms
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25633 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-26 01:55:22 +00:00
Chris Lattner
6dbca0b6bc
Allow use of isa<InlineAsm>(X) without #including InlineAsm.h
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25632 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-26 01:54:21 +00:00
Chris Lattner
3b91778659
parse and verify the constraint string.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25631 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-26 00:48:33 +00:00
Evan Cheng
cdf3838bf1
Clean up some code; improve efficiency; and fixed a potential bug involving
...
chain successors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25630 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-26 00:30:29 +00:00
Evan Cheng
71fb9ad5d9
Remove the uses of STATUS flag register. Rely on node property SDNPInFlag,
...
SDNPOutFlag, and SDNPOptInFlag instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25629 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-26 00:29:36 +00:00
Evan Cheng
44b974c111
Duh.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25628 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-26 00:28:35 +00:00
Evan Cheng
545977371a
Incoming (and optional) flag bugs. They may be embedded inside a inner node of
...
a pattern. Also, nodes which take incoming flag should not be folded if it has
more than one use.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25627 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-26 00:22:25 +00:00
Chris Lattner
3188b73642
Make sure the only user of InlineAsm's are direct calls.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25626 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-26 00:08:45 +00:00