Jim Laskey
033c9715d9
Remove isAccessable.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34497 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-22 16:39:03 +00:00
Jim Laskey
bda9b0ec7b
Add support for changes in DwarfWriter.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34478 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-21 22:47:38 +00:00
Jim Laskey
9b25b8ca24
Allow for live in registers for eh landing pads.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34475 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-21 22:41:17 +00:00
Jim Laskey
30b8e51add
Add a flag to MBBs to indicate whether it is an eh landing pad.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34474 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-21 22:39:52 +00:00
Jim Laskey
59667fe203
Add structures used for collecting eh information.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34473 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-21 22:38:31 +00:00
Jim Laskey
f09f2e304d
Add new instructions for handling data passed into eh landing pad.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34472 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-21 22:37:22 +00:00
Evan Cheng
b371f457b0
Re-apply my liveintervalanalysis changes. Now with PR1207 fixes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34428 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-19 21:49:54 +00:00
Reid Spencer
a284cbf667
For PR1207:
...
Revert patches that caused the problem. Evan, please investigate and reapply
when you've discovered the problem.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34399 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-19 03:20:00 +00:00
Evan Cheng
aa7976199c
- Changes how function livein's are handled, they now have a start index of 0.
...
- When coalescing a copy MI, if its destination is "dead", propagate the
property to the source MI's destination if there are no intervening uses.
- Detect dead function live-in's and remove them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34383 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-17 11:15:40 +00:00
Evan Cheng
094e3e553f
Added findRegisterDefOperand().
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34380 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-17 11:10:18 +00:00
Evan Cheng
9e66eb6046
Added removeLiveIn and more livein iterators.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34378 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-17 11:07:41 +00:00
Evan Cheng
64ff3c349b
Allow LiveVariables to track liveness of more registers.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34377 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-17 11:07:08 +00:00
Evan Cheng
61de82d885
Use BitVector instead of vector<bool> which can be extremely slow.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34302 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15 05:59:24 +00:00
Reid Spencer
ac9dcb94dd
For PR1195:
...
Change use of "packed" term to "vector" in comments, strings, variable
names, etc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34300 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15 03:39:18 +00:00
Evan Cheng
3cd4c892d9
isPhysRegUsed should be const.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34295 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15 02:55:51 +00:00
Evan Cheng
d1172cc056
Should pass isKill and isDead to addRegOperand() as well.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34294 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15 02:52:40 +00:00
Lauro Ramos Venancio
13a3cee131
Add comment about original function argument alignment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34243 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-13 17:57:38 +00:00
Evan Cheng
13d8285678
Add live-ins to MachineBasicBlock.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34111 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-10 02:38:19 +00:00
Bill Wendling
2f5bcb5f38
Fixed comments.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34040 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-08 06:05:08 +00:00
Bill Wendling
529f0690d5
Declarations for functions that create different file writers.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34028 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-08 01:31:38 +00:00
Bill Wendling
4b2ca1a3c4
Moved from include/llvm/CodeGen to lib/CodeGen.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34027 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-08 01:30:50 +00:00
Chris Lattner
831e0374a7
switch the VRBaseMap in the scheduler from an std::map to a DenseMap. This
...
speeds up the isel pass from 2.5570s to 2.4722s on kc++ (3.4%).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33879 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-04 08:47:20 +00:00
Chris Lattner
3f97eb449b
Introduce new UnarySDNode/BinarySDNode/TernarySDNode nodes, which coallocate
...
their operands with the node itself. This reduces malloc traffic for operand
lists. This reduces isel time on kc++ from 2.6164 to 2.5570s, about 2.3%.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33878 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-04 08:35:21 +00:00
Chris Lattner
bc2e26241d
Add a new SDNode ctor and InitOperands method. This allows the operands for
...
an SDNode to be allocated as part of the node itself, instead of being a
separate new[]'d object. Switch HandleSDNode, LoadSDNode, and StoreSDNode
to use this mechanism. This saves one heap allocation and free for each node
of this type that is allocated. This reduces isel time from 2.7638 to 2.6164s
on kc++, which is a 5.6% speedup.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33877 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-04 08:13:53 +00:00
Chris Lattner
ab4ed59538
eliminate the SDNode::setValueTypes method.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33876 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-04 07:37:24 +00:00
Chris Lattner
63e3f14df6
eliminate a bunch of duplicate ctors and helper functions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33875 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-04 07:28:00 +00:00
Chris Lattner
d429bcd4ac
move MorphNode to out of line and merge setNodeOperands into it. There is
...
no behavior or performance change here.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33869 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-04 02:49:29 +00:00
Chris Lattner
48b8592652
simplify MorphNodeTo to take a VTList operand.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33868 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-04 02:41:42 +00:00
Chris Lattner
67612a1188
eliminate some extraneous methods in SDNode
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33867 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-04 02:32:44 +00:00
Chris Lattner
c76e3c8602
Give each selectiondag node class a home for it's vtable and rtti info
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33866 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-04 02:23:32 +00:00
Bill Wendling
0f43b22320
Moved MachORelocation to its own header file. Have a call through the
...
TargetMachOInfo object to the GetTargetRelocation method. Pass into it
non-Mach-O-specific parameters.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33813 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-03 02:37:51 +00:00
Bill Wendling
db6b60c78e
New file for the MachORelocation structure. It doesn't have to be tied to the
...
MachOWriter.h file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33812 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-03 02:36:17 +00:00
Chris Lattner
2ba528b3a7
switch the sched unit map over to use a DenseMap instead of std::map. This
...
speeds up isel as a whole time by 2.6%.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33810 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-03 01:34:13 +00:00
Jim Laskey
b82313fdc2
Support for non-landing pad exception handling.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33755 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-01 16:31:34 +00:00
Chris Lattner
94c002a190
rename DenseMap to IndexedMap.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33749 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-01 05:32:05 +00:00
Evan Cheng
991d3616c8
Added O_F32 and O_64 in addition to UO_F32 and UO_64 even though by
...
default they call the same libgcc routine. The result of the calls are
"tested" differently.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33700 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-31 09:26:31 +00:00
Jim Laskey
c1c47c3fa4
Out of line function.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33641 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 23:40:33 +00:00
Jim Laskey
e078d1a14a
Only gather frame info if debug or eh.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33639 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 23:20:22 +00:00
Nate Begeman
bcc5f36765
Finish off bug 680, allowing targets to custom lower frame and return
...
address nodes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33636 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 22:58:52 +00:00
Nate Begeman
1257c855d7
Properly support cstrings
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33629 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 21:20:42 +00:00
Jim Laskey
072200c36d
Landing pad-less eh for PPC.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33622 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 18:51:14 +00:00
Reid Spencer
36abe14863
IntrinsicLowering now requires TargetData.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33617 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 17:39:50 +00:00
Reid Spencer
e5da2c075e
Adjust a comment to reflect reality.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33607 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-28 22:26:42 +00:00
Anton Korobeynikov
b10308e440
Propagate changes from my local tree. This patch includes:
...
1. New parameter attribute called 'inreg'. It has meaning "place this
parameter in registers, if possible". This is some generalization of
gcc's regparm(n) attribute. It's currently used only in X86-32 backend.
2. Completely rewritten CC handling/lowering code inside X86 backend.
Merged stdcall + c CCs and fastcall + fast CC.
3. Dropped CSRET CC. We cannot add struct return variant for each
target-specific CC (e.g. stdcall + csretcc and so on).
4. Instead of CSRET CC introduced 'sret' parameter attribute. Setting in
on first attribute has meaning 'This is hidden pointer to structure
return. Handle it gently'.
5. Fixed small bug in llvm-extract + add new feature to
FunctionExtraction pass, which relinks all internal-linkaged callees
from deleted function to external linkage. This will allow further
linking everything together.
NOTEs: 1. Documentation will be updated soon.
2. llvm-upgrade should be improved to translate csret => sret.
Before this, there will be some unexpected test fails.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33597 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-28 13:31:35 +00:00
Nate Begeman
6635f35cae
Handle multiple functions, properly mangle symbols, and fix support for
...
scattered relocations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33555 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-26 22:39:48 +00:00
Jim Laskey
6da186480b
rename files
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33552 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-26 21:38:26 +00:00
Jim Laskey
44c3b9fdd4
Change the MachineDebugInfo to MachineModuleInfo to better reflect usage
...
for debugging and exception handling.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33550 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-26 21:22:28 +00:00
Jim Laskey
1ee2925742
Make LABEL a builtin opcode.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33537 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-26 14:34:52 +00:00
Jim Laskey
f1cdea1d02
Migrate print routines to asm to be shared by exception handling.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33498 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-25 15:12:02 +00:00
Jim Laskey
5e73d5bd2e
Repair debug frames as a prelude to eh_frames. Switched to using MachineMoves
...
by value so that clean up is less confusing (these vectors tend to be small.)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33488 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-24 18:45:13 +00:00
Jim Laskey
f9e56198a3
Use asm printer to emit alignment
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33485 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-24 13:12:32 +00:00
Bill Wendling
2b7218218f
Make ivars private and use getters. Have the MachOWriter return "Mach-O
...
Writer" for the pass name.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33483 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-24 07:13:56 +00:00
Bill Wendling
40fab4088e
Moved target-specific information to the TargetMachOWriterInfo obj.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33476 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-24 03:37:18 +00:00
Bill Wendling
203d3e4386
Changed to use the OutputBuffer instead of the methods in MachO and ELF
...
writers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33311 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-17 22:22:31 +00:00
Bill Wendling
e911615c47
Revert patch.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33298 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-17 09:06:13 +00:00
Bill Wendling
99b10272f9
Removed methods which are now in the respective TargetObjInfo implementations.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33287 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-17 03:47:54 +00:00
Chris Lattner
42a7551725
rename Type::isIntegral to Type::isInteger, eliminating the old Type::isInteger.
...
rename Type::getIntegralTypeMask to Type::getIntegerTypeMask.
This makes naming much more consistent. For example, there are now no longer any
instances of IntegerType that are not considered isInteger! :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33225 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-15 02:27:26 +00:00
Reid Spencer
488228ceb1
Primitive types don't include integers any more, adjust.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33209 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-14 21:46:42 +00:00
Evan Cheng
495600120e
- Move RTLIB::Libcall enum to a separate file.
...
- Code clean up.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33148 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-12 22:49:32 +00:00
Rafael Espindola
15404d060b
move ExtWeakSymbols to AsmPrinter
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32648 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-18 03:37:18 +00:00
Bill Wendling
fee18ae074
Accidental submission.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32639 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-17 11:13:13 +00:00
Bill Wendling
5c7e326585
Added an automatic cast to "std::ostream*" etc. from OStream. We then can
...
rework the hacks that had us passing OStream in. We pass in std::ostream*
instead, check for null, and then dispatch to the correct print() method.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32636 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-17 05:15:13 +00:00
Chris Lattner
3381f0a09d
Apply B. Scott Michel's patch for PR1054, thanks!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32630 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-16 20:23:42 +00:00
Evan Cheng
6d0b329577
Typo.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32628 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-16 06:21:55 +00:00
Jeff Cohen
4b607748d8
The best unbreakage yet, addressing Bill's concerns.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32622 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-16 02:15:42 +00:00
Jeff Cohen
c21c5eeb4f
An even better unbreakage...
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32617 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-15 22:57:14 +00:00
Jeff Cohen
d5c0f43992
Complete unbreak of VC++ (Chris identified the simple fix).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32615 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-15 22:06:08 +00:00
Jim Laskey
a80b7833e3
File missing from last check in.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32586 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-14 21:03:17 +00:00
Jim Laskey
acd80ac7bb
1. Tidy up jump table info.
...
2. Allow the jit to handle PIC relocable jump tables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32581 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-14 19:17:33 +00:00
Nate Begeman
bfaaaa6e0f
Properly mangles symbol table names
...
Supports constant pools
Supports relocations to jump tables
Supports relocations within the data segment (global = address of global)
Allocates memory in a non-hacky for all non-code objects.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32430 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-11 02:20:45 +00:00
Nate Begeman
5381baa051
Add a default relocation type, and allow clients to set the ConstantVal
...
field after creation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32429 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-11 02:19:29 +00:00
Bill Wendling
bcd2498f4f
Removed more <iostream> includes
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32321 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-07 20:28:15 +00:00
Bill Wendling
e81561909d
Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are
...
now cerr, cout, and NullStream resp.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32298 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-07 01:30:32 +00:00
Evan Cheng
576d123e13
Move copyKillDeadInfo out-of-line. Add findRegisterUseOperand().
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32273 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-06 08:27:42 +00:00
Jim Laskey
2172f966ca
Change global descriptor names to provide name, full name and linkage name.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32036 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-30 14:35:45 +00:00
Evan Cheng
67f660cb08
- MachineInstr now keeps a ptr to TargetInstrDescriptor instead of Opcode.
...
- Remove the ugly TargetInstrDescriptors hack.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32032 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-30 07:08:44 +00:00
Bill Wendling
a90ba6c2aa
Oops! didn't mean to put this in there yet.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32014 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-29 07:31:23 +00:00
Bill Wendling
bdc679d564
Converted to using llvm streams instead of <iostream>s
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31992 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-29 00:39:47 +00:00
Bill Wendling
68fe61d6a1
Replacing std::iostreams with llvm iostreams. Some of these changes involve
...
adding a temporary wrapper around the ostream to make it friendly to
functions expecting an LLVM stream. This should be fixed in the future.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31990 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-29 00:19:40 +00:00
Bill Wendling
b5ebf15b2b
Added a temporary hack to get the llvm-streams to work for future checkins.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31978 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-28 22:21:29 +00:00
Evan Cheng
afed8142b7
Fix indentation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31956 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-28 02:22:51 +00:00
Bill Wendling
eba4be8090
Added helper function to transition to using llvm streams.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31953 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-28 02:07:29 +00:00
Evan Cheng
c0f64ffab9
Change MachineInstr ctor's to take a TargetInstrDescriptor reference instead
...
of opcode and number of operands.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31947 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-27 23:37:22 +00:00
Chris Lattner
a138c6c73a
setOperand should not zap the operand list or add implicit operands to an
...
instruction. Doing so breaks the FP stackifier, the alpha branch selector
the sparc fpmover.
This fixes PR1012 and CodeGen/X86/fp-stack-compare.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31876 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-20 17:57:22 +00:00
Chris Lattner
9b9cc5ab71
MachineInstr includes this
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31858 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-18 21:48:05 +00:00
Chris Lattner
1ccc4684f3
Implement operator<< for machine basic blocks to make it easier to dump them.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31857 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-18 21:47:36 +00:00
Jim Laskey
9dea41d9e1
Hopefully a good crack at making debugging work on intel -disable-fp-elim.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31830 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-17 21:19:15 +00:00
Evan Cheng
9a1e9b9140
Allow target to specify alignment for function stub.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31788 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-16 20:04:54 +00:00
Bill Wendling
1bcf7a309e
Added "removeRange", which takes and removes an entire LiveRange.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31781 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-16 02:43:32 +00:00
Bill Wendling
01352aa187
Added a new method "CreateNewLiveInterval" which, given a list of
...
LiveRanges, creates a new LiveInterval from them. The LiveRanges should
have existed already in another LiveInterval, but removed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31780 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-16 02:41:50 +00:00
Evan Cheng
dbf58837c4
ChangeToRegister should clear IsImp bit.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31772 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-15 23:55:03 +00:00
Evan Cheng
a6c4c1eb90
Do away with kill / dead maps. Move kill / dead info onto MI's.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31759 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-15 20:51:59 +00:00
Evan Cheng
9a00279988
Add copyKillDeadInfo to copy kill / dead info; other minor updates.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31758 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-15 20:48:17 +00:00
Chris Lattner
b71fd7897f
Simplify IntrinsicLowering and clarify that it is only for use by the
...
CBE and interpreter.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31755 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-15 18:00:10 +00:00
Evan Cheng
7ce4578353
Matches MachineInstr changes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31712 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-13 23:36:35 +00:00
Evan Cheng
d7de496b23
- Let MachineInstr ctors add implicit def and use operands. Other operands
...
will be inserted before these operands. If the opcode changes (by
setOpcode), the implicit operands are updated as well.
- Added IsKill, IsDead fields to MachineOperand in preparation for changes
that move kill / dead info to MachineInstr's.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31711 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-13 23:34:06 +00:00
Evan Cheng
3ba433a7e8
Add methods to add implicit def use operands to a MI.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31675 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-11 10:20:02 +00:00
Jim Laskey
8097ef3d7b
Shut up the warning.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31635 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-10 14:44:12 +00:00
Evan Cheng
e7680cef84
Add implicit def / use operands to MachineInstr.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31632 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-10 08:32:14 +00:00
Evan Cheng
144d8f09e1
Rename ISD::MemOpAddrMode to ISD::MemIndexedMode
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31595 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-09 17:55:04 +00:00
Jim Laskey
b8244e4f6b
Wasn't handling case of when machine move labels were undefined.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31548 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-08 14:16:39 +00:00
Jim Laskey
9d4209fb82
1. Add a pass to fold debug label instructions so a debug info client can detect
...
empty ranges.
2. Reorg how MachineDebugInfo maintains changes to debug labels.
3. Have dwarf writer use debug label info to simplify scopes and source line
coorespondence.
4. Revert the merging of compile units until I can get the bugs ironed out.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31507 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-07 19:33:46 +00:00
Jeff Cohen
d41b30def3
Unbreak VC++ build.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31464 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-05 19:31:28 +00:00
Evan Cheng
9109fb1eb7
Added getIndexedStore.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31458 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-05 09:30:09 +00:00
Evan Cheng
fe0b81759d
Move to operand constraints for two-address instructions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31452 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-04 09:42:53 +00:00
Evan Cheng
e6e97e66a3
Fix comments.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31414 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-03 07:31:32 +00:00
Evan Cheng
7ceebb437e
Add isPredecessor to check whether a node is another's predecessor.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31406 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-03 03:02:18 +00:00
Evan Cheng
41349c10cb
Add a printSetLabel that takes two id's.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31347 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-01 09:23:08 +00:00
Anton Korobeynikov
b52cf1f194
Unbreaking static ctors patch.
...
Defaulting second arguments of SwitchTo*Section, this should make things
somehow clearer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31306 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-31 06:11:06 +00:00
Jim Laskey
6519546eda
Simplify DwarfWriter header.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31295 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-30 13:35:07 +00:00
Evan Cheng
c41cd9c391
Added a new SDNode type: BR_JT for jumptable branch.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31292 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-30 07:59:36 +00:00
Chris Lattner
c4aacac056
add an assertion
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31272 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-28 18:21:51 +00:00
Chris Lattner
5f8d61bbd8
remove dead method
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31271 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-28 18:21:29 +00:00
Chris Lattner
4976dfb4b9
add a method for hacking on JTIdx's
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31270 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-28 18:18:36 +00:00
Chris Lattner
a4eb44a285
const'ify jump table stuff
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31269 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-28 18:17:09 +00:00
Chris Lattner
95e4786a76
add a method for deleting dead jump tables.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31268 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-28 18:12:00 +00:00
Chris Lattner
5bd0c00b80
determine whether a change was made
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31265 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-28 18:00:05 +00:00
Jim Laskey
1fb8e15424
Editorial clean up.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31250 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-28 01:34:21 +00:00
Jim Laskey
583bd47f77
Switch over from SelectionNodeCSEMap to FoldingSet.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31240 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-27 23:46:08 +00:00
Chris Lattner
571e434a34
Turn conditions like x<Y|z==q into multiple blocks.
...
This compiles Regression/CodeGen/X86/or-branch.ll into:
_foo:
subl $12, %esp
call L_bar$stub
movl 20(%esp), %eax
movl 16(%esp), %ecx
cmpl $5, %eax
jl LBB1_1 #cond_true
LBB1_3: #entry
testl %ecx, %ecx
jne LBB1_2 #UnifiedReturnBlock
LBB1_1: #cond_true
call L_bar$stub
addl $12, %esp
ret
LBB1_2: #UnifiedReturnBlock
addl $12, %esp
ret
instead of:
_foo:
subl $12, %esp
call L_bar$stub
movl 20(%esp), %eax
movl 16(%esp), %ecx
cmpl $4, %eax
setg %al
testl %ecx, %ecx
setne %cl
testb %cl, %al
jne LBB1_2 #UnifiedReturnBlock
LBB1_1: #cond_true
call L_bar$stub
addl $12, %esp
ret
LBB1_2: #UnifiedReturnBlock
addl $12, %esp
ret
And on ppc to:
cmpwi cr0, r29, 5
blt cr0, LBB1_1 ;cond_true
LBB1_3: ;entry
cmplwi cr0, r30, 0
bne cr0, LBB1_2 ;UnifiedReturnBlock
instead of:
cmpwi cr7, r4, 4
mfcr r2
addic r4, r3, -1
subfe r30, r4, r3
rlwinm r29, r2, 30, 31, 31
and r2, r29, r30
cmplwi cr0, r2, 0
bne cr0, LBB1_2 ;UnifiedReturnBlock
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31230 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-27 21:36:01 +00:00
Evan Cheng
8862ef1481
Indexed load / store changes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31208 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-26 21:52:24 +00:00
Devang Patel
f9c197e022
Move getPreferredAlignmentLog from AsmPrinter to TargetData
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31171 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-24 20:32:14 +00:00
Chris Lattner
57ab65972e
Generalize CaseBlock a bit more:
...
Rename LHSBB/RHSBB to TrueBB/FalseBB. Allow the RHS value to be null,
in which case the LHS is treated as a bool.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31166 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-24 17:57:59 +00:00
Chris Lattner
7b248d9866
generalize 'CaseBlock'. It really allows any comparison to be inserted.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31161 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-24 17:03:35 +00:00
Jim Laskey
fcc1d9473e
Tighter data structure for deleted debug labels.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31152 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-24 11:50:43 +00:00
Chris Lattner
34ea07692f
add two helper methods
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31143 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-23 23:35:35 +00:00
Jim Laskey
66ebf0973d
More complete solution to deleting blocks and debug info.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31129 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-23 14:56:37 +00:00
Chris Lattner
cd5bad3711
New, wonderful isSuccessor method
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31103 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-21 06:50:05 +00:00
Chris Lattner
846c1b4936
typo
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31089 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-20 22:44:45 +00:00
Chris Lattner
fcfcb6cb50
add isIdenticalTo method to machineinstr/operand.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31087 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-20 22:39:36 +00:00
Chris Lattner
986cc38613
add method
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31066 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-20 18:00:03 +00:00
Chris Lattner
a97906b6e6
add a method to remove a line # record.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31025 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-17 23:16:42 +00:00
Chris Lattner
8466b21432
Do not leak all of the SourceLineInfo objects. Do not bother mallocing each
...
one separately.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31022 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-17 22:06:46 +00:00
Chris Lattner
dc246715cb
minor cleanups
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31021 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-17 21:51:44 +00:00
Evan Cheng
35acd30a2e
Split PRE_INDEXED to PRE_INC / PRE_DEC and similarly for POST_INDEXED.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31015 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-17 21:12:56 +00:00
Jim Laskey
99e41eed6d
Clean up interface to getGlobalLinkName.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31001 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-17 17:17:24 +00:00
Jim Laskey
a1a19f803c
Basic support for getGlobalLinkName.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30997 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-17 13:41:07 +00:00
Jim Laskey
c7c3f110ed
Pass AliasAnalysis thru to DAGCombiner.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30984 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-16 20:52:31 +00:00
Chris Lattner
a7fa1476b6
add a ReplaceMBBInJumpTables method
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30983 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-16 20:41:42 +00:00
Evan Cheng
bddc5d04d7
Start checking from the root of the matched sub-tree.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30957 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-14 08:30:53 +00:00
Chris Lattner
51dabfb283
When SimplifySetCC was moved to the DAGCombiner, it was never removed from
...
SelectionDAG and it has since bitrotted. Remove the copy from SelectionDAG.
Next, remove the constant folding piece of DAGCombiner::SimplifySetCC into
a new FoldSetCC method which can be used by getNode() and SimplifySetCC.
This fixes obscure bugs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30952 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-14 00:41:01 +00:00
Evan Cheng
8b2794aeff
Merge ISD::TRUNCSTORE to ISD::STORE. Switch to using StoreSDNode.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30945 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-13 21:14:26 +00:00
Evan Cheng
130a6471b9
Add RemoveDeadNode to remove a dead node and its (potentially) dead operands.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30916 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-12 20:34:05 +00:00
Evan Cheng
2e49f090f9
Naming consistency.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30878 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-11 07:10:22 +00:00
Andrew Lenharth
82c3d8f81a
Jimptables working again on alpha.
...
As a bonus, use the GOT node instead of the AlphaISD::GOT for internal stuff.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30873 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-11 04:29:42 +00:00
Chris Lattner
755480681c
add two helper methods.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30869 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-11 03:58:02 +00:00
Evan Cheng
81c3845788
Comments; getChain(), getBasePtr(), etc. should return a SDOperand by value.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30850 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-10 01:44:58 +00:00
Evan Cheng
24446e253a
Merging ISD::LOAD and ISD::LOADX. Added LoadSDNode to represent load nodes.
...
Chain and address ptr remains as operands. SrcValue, extending mode, extending
VT (or rather loaded VT before extension) are now instance variables of
LoadSDNode.
Introduce load / store addressing modes to represent pre- and post-indexed
load and store. Also added an additional operand offset that is only used in
post-indexed mode (i.e. base ptr += offset after load/store).
Added alignment info (not yet used) and isVolatile fields.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30843 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-09 20:55:20 +00:00
Chris Lattner
b6bb7e1ffe
add an accessor
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30761 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-06 01:16:29 +00:00
Evan Cheng
ad071e1cd1
Add getStore() helper function to create ISD::STORE nodes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30758 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-05 22:57:11 +00:00