Reid Spencer
d2bb887cd1
Bye, Bye Compaction Tables. The benefit compaction tables provides doesn't
...
outweight its computational costs. This patch removes all compaction
table handling from the bcreader and bcwriter. For the record, here's the
difference betweeen having and not having compaction tables for some tests:
Test With Without Size Chg
Olden/mst 5,602 5,598 +0.1%
viterbi 18,026 17,795 +1.3%
obsequi 162,133 166,663 -2.8%
burg 224,090 228,148 -1.8%
kimwitu++ 4,933,263 5,121,159 -3.8%
176.gcc 8,470,424 9,141,539 -7.3%
It seems that it is more beneficial to larger files, but even on the largest
test case we have (176.gcc) it only amounts ot an I/O saving of 7.3%.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33661 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-30 19:36:46 +00:00
Evan Cheng
ad1b9a503c
Copy and paste bug.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33658 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-30 08:22:33 +00:00
Evan Cheng
b267ca17d1
Darwin -static should codegen static ctors / dtors to .constructor / .destructor sections.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33657 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-30 08:04:53 +00:00
Evan Cheng
c322a9ac14
Misseed thumb jumptable branch.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33656 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-30 08:03:06 +00:00
Evan Cheng
236f677e48
In thumb mode, round up stack frame size to multiple of 4 since add/sub
...
sp, imm instructions implicitly multiply the offset by 4.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33653 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-30 02:57:02 +00:00
Evan Cheng
5b91c7f69a
Thumb eliminateFrameIndex fixes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33652 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-30 02:36:01 +00:00
Evan Cheng
cea117d2de
Change the operand orders to t_addrmode_s* to make it easier to morph
...
instructions that use these address modes to instructions that use
t_addrmode_sp.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33651 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-30 02:35:32 +00:00
Evan Cheng
d1b2c1e88f
- In thumb mode, if size of MachineFunction is >= 2048, force LR to be
...
spilled (if it is not already).
- If LR is spilled, use BL to implement far jumps. LR is not used as a GPR
in thumb mode so it can be clobbered if it is properly spilled / restored
in prologue / epilogue.
- If LR is force spilled but no far jump has been emitted, try undo'ing the
spill by:
push lr -> delete
pop pc -> bx lr
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33650 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-30 01:18:38 +00:00
Evan Cheng
225dfe973b
Use BL to implement Thumb far jumps.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33649 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-30 01:13:37 +00:00
Evan Cheng
29836c330f
Factor GetInstSize() out of constpool island pass.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33644 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 23:45:17 +00:00
Chris Lattner
367f109ba9
add initial support for handling inline asms with multiple constraints.
...
This doesn't do the "right thing" but will probably work in most cases.
This implements CodeGen/PowerPC/2007-01-29-lbrx-asm.ll.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33643 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 23:45:14 +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
Devang Patel
f5b17fd938
Use StartPassTimer() and StopPassManager()
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33640 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 23:29:54 +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
Devang Patel
c874eb54ec
- Undo previous check-in (i.e. Do not export TimingInfo class through
...
PassManagers.h).
- Add StopPassTimer() and StartPassTimer() to expose TimingInfo to
CallGraphPassManager
- Use these two APIs in CalLgraphPassManager to measure timings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33638 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 23:10:37 +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
1f259e9d7a
We'd still like to register allocate r2 on darwin before the callee-save
...
regs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33635 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 22:57:48 +00:00
Jim Laskey
73c5624375
rename flag
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33634 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 22:40:03 +00:00
Evan Cheng
24f7fb3267
Comment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33633 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 22:23:02 +00:00
Evan Cheng
78268b9436
Remember if LR register has been spilled in this function.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33632 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 22:22:24 +00:00
Anton Korobeynikov
1620f1ad91
Save all registers by default, as they can be used to pass parameters
...
for "inreg" calls
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33631 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 21:28:01 +00:00
Nate Begeman
908049b7b6
Update some of the llvm in the readme
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33630 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 21:21:22 +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
1b340dc8e2
Flag to control exception handling.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33628 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 20:48:32 +00:00
Devang Patel
f82aa1cf73
Measure timings.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33627 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 20:08:03 +00:00
Devang Patel
b05ef6a8eb
Move TimingInfo into PassManagers.h so that other libs can use it.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33626 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 20:06:26 +00:00
Jim Laskey
d683ef6655
Disable zero landing pads for now.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33625 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 20:01:41 +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
73a27c894f
Remove tabs.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33620 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 17:55:50 +00:00
Reid Spencer
519e239b1f
Implement use of new IntrinsicLowering interface.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33619 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 17:51:02 +00:00
Reid Spencer
6addf2ceeb
Use TargetData to obtain the correct size of the "size_t" argument for
...
functions like memcpy, memmove and memset. Ensure only one prototype is
used for these functions and that it matches the system definition by
using the appropriate type for the size argument.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33618 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 17:42:06 +00:00
Nick Lewycky
6a08f918b6
Simplify names of lattice values. SGTUNE becomes SGT, for example.
...
Fix initializeConstant, now initializeInt. Fixes major performance
bottleneck.
X == Y || X->DominatedBy(Y) is redundant. Remove the X == Y part.
Fix crasher in makeEqual where getOrInsertNode would add a new constant,
producing an NE relationship between the two members we're trying to make
equal. This now allows us to mark more BBs as unreachable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33612 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 02:56:54 +00:00
Chris Lattner
ec9bfdc152
Read from the right place.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33611 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 02:18:13 +00:00
Chris Lattner
c36357c406
Fix PR1139
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33610 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-29 00:21:34 +00:00
Reid Spencer
1e9126b3c4
For PR1138:
...
Force memcpy to be the 32-bit variant. Since this is only used with
CBE and lli which both target 32-bit machines, this should be okay.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33608 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-28 22:28:00 +00:00
Anton Korobeynikov
6aa279dc8b
Arguments are counting from 1. not from 0. Maybe we should change
...
numbering somehow? E.g. make return argument the last?
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33606 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-28 18:01:49 +00:00
Anton Korobeynikov
ac2b2cf88c
More cleanup
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33605 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-28 16:04:40 +00:00
Nick Lewycky
5310897884
Fix compile error "jump to case label crosses initialization".
...
What compiler are people using that accepts this code?
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33603 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-28 15:39:16 +00:00
Anton Korobeynikov
9adeaa2f59
Regenerate
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33599 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-28 13:37:39 +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
Reid Spencer
f0876c7cb7
This file has been dead for a long time. Remove it.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33596 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-28 08:04:14 +00:00
Chris Lattner
424db0209c
Fix test/Transforms/InstCombine/2007-01-27-AndICmp.ll, a miscompilation of
...
Mozilla that Anton tracked down.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33591 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-27 23:08:34 +00:00
Bill Wendling
0db1f0b00b
Make d'tor out-of-line.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33585 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-27 11:40:32 +00:00
Chris Lattner
0b930852cf
implement SmallPtrSet::erase
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33581 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-27 07:59:10 +00:00
Chris Lattner
24757decb8
add a note
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33578 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-27 07:18:32 +00:00
Chris Lattner
c95dc987e9
Add a new SmallSet ADT specialized for pointers.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33577 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-27 07:10:46 +00:00
Bill Wendling
fcdea7baf0
Return an X86ELFWriterInfo object.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33574 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-27 02:56:16 +00:00
Bill Wendling
5d73a2a156
Use TargetELFWriterInfo class.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33573 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-27 02:55:44 +00:00
Bill Wendling
40d776469d
X86 implementation of the TargetELFWriterInfo class.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33571 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-27 02:54:30 +00:00
Evan Cheng
198529aaf1
New entry.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33569 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-27 02:33:22 +00:00
Evan Cheng
d85ac4d079
Thumb jumptable support.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33568 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-27 02:29:45 +00:00
Evan Cheng
53d7dbafc3
Thumb add / sub with carry.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33562 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-27 00:07:15 +00:00
Lauro Ramos Venancio
ea9fc58bbf
Some asm directives fixes for ELF.
...
Now we can compile llvm-gcc on arm-linux-gnueabi!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33558 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-26 23:24:43 +00:00
Nate Begeman
3c983c3dc1
Fix a spelling error
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33556 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-26 22:40:50 +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
Evan Cheng
3fdadfc9ab
Represent tADDspi and tSUBspi as two-address instructions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33551 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-26 21:33:19 +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
Lauro Ramos Venancio
fce1765a19
Fix Data16bitsDirective for ELF.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33549 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-26 21:20:45 +00:00
Evan Cheng
43aeab68a6
Conditional branch being fixed up is not the last MI in the BB, there is a
...
unconditional branch following it. Simply invert the condition and swap
destinations if the conditional branch can reach the destination of the
unconditional branch:
beq L1
b L2
=>
bne L2
b L1
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33548 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-26 20:38:26 +00:00
Lauro Ramos Venancio
1a92d941b3
If the constant pool value is a extern weak symbol, emit the weak reference.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33543 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-26 19:51:32 +00:00
Evan Cheng
b60c02e005
extload -> zextload
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33542 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-26 19:13:16 +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
2b935d55b0
Clarify some constants.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33536 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-26 14:19:17 +00:00
Reid Spencer
26f238589f
For PR761:
...
The Module::setEndianness and Module::setPointerSize methods have been
removed. Instead you can get/set the DataLayout. Adjust thise accordingly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33530 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-26 08:11:39 +00:00
Reid Spencer
aacc35a794
For PR761:
...
Remove the Endianness and PointerSize fields from the ModuleHeader and
replace it with the DataLayout field.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33529 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-26 08:10:24 +00:00
Reid Spencer
f00c595bf5
For PR761:
...
Remove the setEndianess and setPointerSize methods. These are now
handled via the setDataLayout method.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33527 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-26 08:07:57 +00:00
Reid Spencer
41dff5e4f7
Regenerate for PR645 and PR761
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33525 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-26 08:05:27 +00:00
Reid Spencer
b2d1786090
For PR645:
...
Implement separation of local and global symbols. Local symbols and types
now use % prefix. Global variables and functions now use @ prefix.
For PR761:
Replace:
target endian =
target pointersize =
With:
target datalayout =
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33524 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-26 08:04:51 +00:00
Reid Spencer
3702d265b8
For PR645:
...
Implement new syntax for local and global symbols. Types and local
symbols use the % prefix. Global variables and functions use the @ prefix.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33523 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-26 08:02:52 +00:00
Reid Spencer
0fc052c36f
For PR645:
...
Remove the Function::renameLocalSymbols function as it is no longer
needed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33522 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-26 08:01:30 +00:00
Reid Spencer
43276ee280
IntegerType is a sized DerivedType too.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33521 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-26 07:51:36 +00:00
Reid Spencer
3d10b0b2d3
Clean up comments and assert messages that still refer to the old type names.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33520 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-26 07:37:34 +00:00
Reid Spencer
ca01cfe4df
Fix an assertion message.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33519 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-26 06:30:34 +00:00
Evan Cheng
dd353b8ad7
SplitBlockBeforeInstr() insert a unconditional branch to the next BB. This
...
is unnecessary when we are fixing up a conditional branch since we will be
adding a unconditional branch to the destination of the original branch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33517 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-26 02:02:39 +00:00
Devang Patel
129ccd9def
Remove dead code.
...
CallGraphSCCPass does not need to implement runOnModule().
It supports runOnSCC().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33516 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-26 01:08:18 +00:00
Evan Cheng
7755facd76
Need to scan the function for branches even if there aren't any constants.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33515 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-26 01:04:44 +00:00
Devang Patel
c71ca3cdd2
Inherit CallGraphSCCPass directly from Pass.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33514 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-26 00:47:38 +00:00
Evan Cheng
a0bf794eb6
Forgot to update this.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33512 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-25 23:31:04 +00:00
Devang Patel
4d447f5121
Inherit BasicBlockPass directly from Pass.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33511 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-25 23:23:25 +00:00
Evan Cheng
c285414988
Add comment, fix typo, reduce memory usage, etc.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33510 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-25 23:18:59 +00:00
Evan Cheng
3df62bde9b
I am an idiot.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33509 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-25 23:18:16 +00:00
Evan Cheng
fab0439c62
Fix comment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33508 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-25 22:48:25 +00:00
Evan Cheng
99403b6964
- Tell PEI that PPC will handle stack frame rounding itself.
...
- Do not round up to max. alignment of stack object if it is > stack alignment.
It will have to be handled with dynamic aligning code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33505 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-25 22:25:04 +00:00
Evan Cheng
02a2029141
Added a MRegisterInfo hook that tells PEI the target is responsible for
...
rounding the stack frame to a multiple of stack alignment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33504 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-25 22:12:41 +00:00
Lauro Ramos Venancio
b1cc052823
Fix elf object definition.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33502 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-25 20:11:04 +00:00
Evan Cheng
743fa032a7
Doh. Skip JT branches.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33501 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-25 19:43:52 +00:00
Chris Lattner
338305b0b6
Make llvm-extract preserve the callingconv of prototypes in the extracted
...
code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33500 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-25 17:38:26 +00:00
Jim Laskey
1a4a83ca39
1. Remove dwarf-verbose option (now asm-verbose.)
...
2. Clean up end of lines.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33499 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-25 15:45:58 +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
Evan Cheng
af5cbcb809
Added (preliminary) branch shortening capability to constantpool island pass.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33497 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-25 03:12:46 +00:00
Evan Cheng
6318ffd736
Getting rid uses of evil std::set<>
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33496 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-25 03:07:27 +00:00
Chris Lattner
b482872d1d
Fix test/CFrontend/2007-01-24-InlineAsmCModifier.c on X86. The %c modifier
...
says that no $ prefix should be emitted on X86.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33495 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-25 02:53:24 +00:00
Chris Lattner
78192b6204
Fix test/CFrontend/2007-01-24-InlineAsmCModifier.c on PPC
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33494 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-25 02:52:50 +00:00
Andrew Lenharth
3553d86731
FTOIT and ITOFT are bit converts, and if we drop 21264s, are always available
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33492 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-24 21:09:16 +00:00
Jim Laskey
0e41094d49
Call frames for intel.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33490 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-24 19:15:24 +00:00
Jim Laskey
7ac947d23d
80 columns
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33489 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-24 18:50:57 +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
Andrew Lenharth
7cce0ac42b
Fix unordered fp on alpha
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33487 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-24 18:43:14 +00:00
Chris Lattner
d06b2ab701
Fix a misencoding of CBW and CWD. This fixes PR1030.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33486 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-24 18:31:00 +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
Evan Cheng
012f2d97b7
Use PC relative ldr to load from a constantpool in Thumb mode.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33484 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-24 08:53:17 +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
Evan Cheng
de268f7dcf
Renamed getTypeAlignmentShift() to getPreferredTypeAlignmentShift().
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33482 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-24 07:03:39 +00:00
Bill Wendling
0ea18ff8e7
Add a field for and construction of the PPCMachOWriterInfo object.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33480 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-24 03:41:36 +00:00
Bill Wendling
3d6d609aae
Move the getJTRelocation method out of here.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33479 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-24 03:40:33 +00:00
Bill Wendling
a4b7324fa0
Use the TargetMachOWriterInfo class to get this information.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33478 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-24 03:38:47 +00:00
Bill Wendling
841056a2ad
New "TargetMachOWriterInfo" class. It holds target-specific information
...
that the MachOWriter needs in order to do its writing stuff 'n things.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33475 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-24 03:36:05 +00:00
Evan Cheng
e966d6415c
Allow [ fi#c, imm ] as ARM load / store addresses.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33474 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-24 02:45:25 +00:00
Evan Cheng
79d4326b00
Various Thumb mode load / store isel bug fixes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33472 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-24 02:21:22 +00:00
Evan Cheng
c38f2bc3c2
- Reorg Thumb load / store instructions. Combine each rr and ri pair of
...
instructions into one (e.g. tLDRrr, tLDRri -> tLDR).
- Thumb ldrsb and ldrsh only have the [reg, reg] address format. If the
address is not an add, materialize a 0 immediate into a register and use
it as the offset field.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33470 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-23 22:59:13 +00:00
Devang Patel
d9f10c3d11
Fix typo.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33467 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-23 21:55:17 +00:00
Devang Patel
97fd2439f2
Add CallGraphSCCPass::assignPassManager().
...
This enables CalLGraphPassManager.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33466 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-23 21:52:35 +00:00
Evan Cheng
a6f567c89e
Darwin HiddenDirective is .private_extern.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33465 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-23 19:06:03 +00:00
Anton Korobeynikov
fd58e6e2ec
Moved disassembler to libSystem
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33461 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-23 10:26:08 +00:00
Evan Cheng
367372a30c
PEI is now responsible for adding MaxCallFrameSize to frame size and align the stack. Each target can further adjust the frame size if necessary.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33460 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-23 09:38:11 +00:00
Chris Lattner
08a4d5a343
Switch this to use SmallSet to avoid mallocs in the common case.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33457 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-23 00:59:48 +00:00
Evan Cheng
dc77540d95
hasFP() is now a virtual method of MRegisterInfo.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33455 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-23 00:57:47 +00:00
Chris Lattner
fad2912522
Fix a bunch of inline asm failures
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33454 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-23 00:36:17 +00:00
Evan Cheng
f6d039a039
Remove the DoubleTy special case.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33449 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-22 23:13:55 +00:00
Evan Cheng
aa3e123ebb
ARM AAPCS abi (Linux, etc.) requires 8-byte double / long alignment; Mac
...
requires 4-bytes alignment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33448 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-22 23:13:01 +00:00
Evan Cheng
74fc22d484
Double and long preferred alignment set to 8 bytes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33447 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-22 23:11:06 +00:00
Evan Cheng
ebd9b73ecd
Double and long preferred alignment is 8 byte.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33446 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-22 23:09:50 +00:00
Evan Cheng
778900a5d1
- getTypeAlignmentShift() should be returning preferred alignment, not ABI
...
alignment.
- getPreferredAlignmentLog(): remove Double special case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33445 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-22 23:08:19 +00:00
Evan Cheng
706535db86
Linux GOT indirect reference is only necessary in PIC mode.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33441 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-22 21:34:25 +00:00
Evan Cheng
d44ecd86e7
Double and Long preferred alignment is 4 for Darwin, 8 for Linux.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33440 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-22 21:24:13 +00:00
Evan Cheng
2576f13645
Use bl to call Thumb fuctions directly.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33433 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-22 19:40:10 +00:00
Reid Spencer
4223016d02
Cleanup checks in the load and store of casted pointer transforms. Two
...
changes: (1) don't special case for i1 any more, (2) use the new
TargetData::getTypeSizeInBits method to ensure source and dest are the
same bit width.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33427 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-22 05:51:25 +00:00
Jeff Cohen
361c3efd9a
Fix this error:
...
llvm[2]: Compiling llvmAsmParser.cpp for Debug build
/usr/home/jeffc/llvm/lib/AsmParser/llvmAsmParser.y: In function 'int llvmAsmparse()':
/usr/home/jeffc/llvm/lib/AsmParser/llvmAsmParser.y:1846: error: expected `;' before '}' token
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33425 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-21 19:19:31 +00:00
Chris Lattner
66bb5b5db6
add a note
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33423 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-21 07:03:37 +00:00
Reid Spencer
2c7123c558
Whoops, fix typo in last commit.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33417 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-21 02:29:10 +00:00
Reid Spencer
24d6da5fed
For PR970:
...
Clean up handling of isFloatingPoint() and dealing with PackedType.
Patch by Gordon Henriksen!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33415 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-21 00:29:26 +00:00
Reid Spencer
67f827ce5b
Revise the store V, (cast P) -> store (cast V) -> P transform.
...
We only want to do this if the src and destination types have the same
bit width. This patch uses TargetData::getTypeSizeInBits() instead of
making a special case for integer types and avoiding the transform if
they don't match.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33414 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-20 23:35:48 +00:00
Reid Spencer
7c29243670
Implement a getTypeSizeInBits method. This helps in transforms that want
...
to ensure the bit size of a type is identical before proceeding.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33413 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-20 23:32:04 +00:00
Owen Anderson
1027a533d4
TargetData assumes (and some regression tests depend on it) that the size of
...
an unspecified datatype in the datalayout is capped by the size of a pointer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33411 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-20 23:07:13 +00:00
Chris Lattner
4a8c32debf
trivial cleanup
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33410 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-20 22:39:15 +00:00
Chris Lattner
58092e35a3
Teach TargetData to handle 'preferred' alignment for each target, and use
...
these alignment amounts to align scalars when we can. Patch by Scott Michel!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33409 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-20 22:35:55 +00:00
Chris Lattner
c5633c235e
DOUT still evaluates side effects, even though it doesn't print. This means
...
that disassembleBuffer will be called even if NDEBUG, but the result will
be ignored.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33408 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-20 20:51:43 +00:00
Reid Spencer
1c7a242358
For PR808:
...
NetBSD also doesn't have pthread_mutexattr_setpshared
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33406 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-20 20:44:38 +00:00
Reid Spencer
a42c7fd0ca
Implement the signed icmp instructions properly. To do this we introduce
...
a small inline function to sign extend a uint64_t value based on its
type's bitwidth. This function is then used in both executeSExtInst and
the various executeICMP_S** functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33403 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-20 20:12:29 +00:00
Evan Cheng
515674c7b6
Round up stack to multiple of alignment only if it's a leaf function without alloca.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33401 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-20 10:22:33 +00:00
Evan Cheng
2bd7b2b41f
One more try...
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33400 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-20 10:17:53 +00:00
Evan Cheng
5ad334fbda
Last check-in was bogus. There is no need to align the stack if the function is a leaf function (and without alloca).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33399 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-20 10:11:56 +00:00
Evan Cheng
597a3bde35
Fix for PR1108: type of insert_vector_elt index operand is PtrVT, not MVT::i32.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33398 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-20 10:10:26 +00:00
Owen Anderson
f4d5de4080
Correct a comment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33397 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-20 10:07:23 +00:00
Evan Cheng
70cfa88944
Remove an unused variable.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33396 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-20 09:21:54 +00:00
Reid Spencer
c00a43092e
Implement bit-accurate sext instruction.
...
This patch fixes test/Integer/2007-01-17-TruncSext.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33394 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-20 08:32:52 +00:00
Evan Cheng
c1c7283047
Prologue and epilogue bugs for non-Darwin targets.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33390 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-20 03:24:07 +00:00
Evan Cheng
75e18c403e
Clean up ARM PEI code.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33389 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-20 02:09:25 +00:00
Evan Cheng
0327863a73
Backend is reponsible for aligning the stack.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33388 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-20 02:08:16 +00:00
Evan Cheng
57a2306074
We not align the final stack slot but instead let the target do so in emitPrologue(). Each target can make adjustments to the stack frame and re-align the stack as it deem appropriate. Do not align it twice which can end up wasting stack space.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33387 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-20 02:07:13 +00:00
Evan Cheng
3c82cab9aa
GetRegForReload() now keeps track which registers have been considered and rejected during its quest to find a suitable reload register. This avoids an infinite loop in case like this:
...
t1 := op t2, t3
t2 <- assigned r0 for use by the reload but ended up reuse r1
t3 <- assigned r1 for use by the reload but ended up reuse r0
t1 <- desires r1
sees r1 is taken by t2, tries t2's reload register r0
sees r0 is taken by t3, tries t3's reload register r1
sees r1 is taken by t2, tries t2's reload register r0 ...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33382 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-19 22:40:14 +00:00
Reid Spencer
a867cf0265
Unbreak Darwin.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33375 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-19 22:04:24 +00:00
Reid Spencer
02f20d3d9b
Help the lli interpreter find the stderr/stdin/stdout symbols. These are
...
needed for output to be generated. On Linux these are both global vars and
macro definitions so we have to special case Linux.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33374 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-19 21:41:04 +00:00
Reid Spencer
81e3954dc9
Handle each of stderr/stdin/stdout separately.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33373 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-19 21:30:39 +00:00
Reid Spencer
ab60be7a00
Remove dead methods in the ValTypes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33372 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-19 21:25:12 +00:00
Reid Spencer
55af2b59bb
For this transform: store V, (cast P) -> store (cast V), P
...
don't allow the transform if V and the pointer's element type are different
width integer types.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33371 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-19 21:20:31 +00:00
Reid Spencer
c10305743c
For PR1043:
...
This is the final patch for this PR. It implements some minor cleanup
in the use of IntegerType, to wit:
1. Type::getIntegerTypeMask -> IntegerType::getBitMask
2. Type::Int*Ty changed to IntegerType* from Type*
3. ConstantInt::getType() returns IntegerType* now, not Type*
This also fixes PR1120.
Patch by Sheng Zhou.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33370 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-19 21:13:56 +00:00
Evan Cheng
34b12d24a0
Code clean up. Use def : pat instead of defining new instructions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33368 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-19 20:27:35 +00:00
Andrew Lenharth
a9ebd2b91f
fix build on amd64
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33367 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-19 20:17:59 +00:00
Evan Cheng
970a419633
isDarwin -> isTargetDarwin
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33366 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-19 19:28:01 +00:00
Evan Cheng
5be54b00bd
Restructure code a bit to make use of continue (simplifying things). Generalize
...
the .zerofill directive emission to not be darwin-specific.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33365 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-19 19:25:36 +00:00
Evan Cheng
e433ea9dce
Darwin doesn't support .bss, but it does have .zerofill
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33364 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-19 19:23:47 +00:00
Evan Cheng
1a3771e30e
Introduce TargetType's ELF and Darwin.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33363 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-19 19:22:40 +00:00
Evan Cheng
8e1185bd5c
Modify emission of jump tables on darwin to emit an extra "l" label that
...
delimits the boundaries of jump tables. This lets the linker's dead code
stripping optimization do a better job.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33362 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-19 18:59:56 +00:00
Evan Cheng
42d7ccfd8e
Remove this xform:
...
(shl (add x, c1), c2) -> (add (shl x, c2), c1<<c2)
Replace it with:
(add (shl (add x, c1), c2), ) -> (add (add (shl x, c2), c1<<c2), )
This fixes test/CodeGen/ARM/smul.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33361 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-19 17:51:44 +00:00
Lauro Ramos Venancio
471ffaffd8
Fix section definition.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33359 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-19 17:33:22 +00:00
Anton Korobeynikov
8cd4c3e653
Adding disassembler interface and external hook to udis86 library.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33358 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-19 17:25:17 +00:00
Evan Cheng
a8e2989ece
ARM backend contribution from Apple.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33353 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-19 07:51:42 +00:00
Nick Lewycky
bd92d81d22
Needed to build on PPC Linux.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33352 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-19 04:36:02 +00:00
Reid Spencer
021830bb03
Back out last changes for dataLayout. Much more work is needed.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33347 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-19 00:07:16 +00:00
Reid Spencer
4b70161b69
For PR761:
...
Implement reading and writing of the Module's data layout string.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33346 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-18 23:24:24 +00:00
Evan Cheng
ae19abc2cc
- Target PIC style is no longer affected by relocation model.
...
- In x86-64 mode, symbols with external linkage (not just symbols which are
defined externally) requires GOT indirect reference.
- Stylistic code clean up.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33345 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-18 22:27:12 +00:00
Chris Lattner
696ee0ab15
Fix InstCombine/2007-01-18-VectorInfLoop.ll, a case where instcombine
...
infinitely loops.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33343 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-18 22:16:33 +00:00
Reid Spencer
7515396096
Clean up some code around the store V, (cast P) -> store (cast V), P
...
transform. Change some variable names so it is clear what is source and
what is dest of the cast. Also, add an assert to ensure that the integer
to integer case is asserting if the bitwidths are different. This prevents
illegal casts from being formed and catches bitwidth bugs sooner.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33337 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-18 18:54:33 +00:00
Reid Spencer
b5f378e11b
Use a cheaper computation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33336 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-18 18:14:49 +00:00
Reid Spencer
8205972a5a
Fix a regression in the last patch. When constructing a BitMask, be careful
...
not to overflow 64-bits and end up with a 0 mask. This caused i64 values to
always be stored as 0 with lots of consequential damage to nightly test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33335 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-18 18:01:32 +00:00
Chris Lattner
afd7a08a76
move contents of PR587 to here.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33333 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-18 07:34:57 +00:00
Reid Spencer
7808dcba05
Provide an isPowerOf2ByteWidth method for the IntegerType class. This will
...
mostly be used by back ends that wish to distinguish between integer types
that fit evenly within a natural integer type and those that don't.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33328 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-18 02:59:54 +00:00
Bill Wendling
39e9c09763
The zerofill directive needs a newline after it.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33327 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-18 02:30:19 +00:00
Reid Spencer
65367b26bf
Use the new maskToBitWidth function to ensure that the results of
...
computations do not overflow the intended bit width.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33326 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-18 02:12:51 +00:00
Reid Spencer
90935f608d
Add an inline helper function that masks a GenericValue to a specified
...
bit width.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33325 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-18 02:12:10 +00:00
Evan Cheng
071b9d5d7c
Minor code clean up.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33323 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-18 01:49:58 +00:00
Reid Spencer
547dcf2467
Make shl instruction mask its result to the correct bitsize. This is
...
sufficient to get llvm-test/SingleSource/UnitTests/Integer/general-test.ll
working with lli in interpreter mode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33321 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-18 01:32:46 +00:00
Reid Spencer
23e28836ed
Two changes:
...
1. Fix logic for executeGEP. Only 32-bit and 64-bit integer types are
acceptable as indices.
2. Ensure that all integer cast operations truncate their result to the
integer size of the operand.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33318 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-18 01:25:42 +00:00
Reid Spencer
f89aec655f
Make sure we truncate stored values to their bit width.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33317 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-18 01:24:02 +00:00
Bill Wendling
c904a5b925
Have the OutputBuffer take the is64Bit and isLittleEndian booleans.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33316 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-18 01:23:11 +00:00
Chris Lattner
b266ccd0f4
Modify emission of jump tables on darwin to emit an extra "l" label that
...
delimits the boundaries of jump tables. This lets the linker's dead code
stripping optimization do a better job.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33315 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-18 01:15:58 +00:00
Chris Lattner
393a8eea3c
add new JumpTableSpecialLabelPrefix hook to asmprinter for jumptable emission.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33314 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-18 01:12:56 +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
Devang Patel
75f9abf517
Add CGPassManager.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33309 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-17 21:45:01 +00:00
Devang Patel
44b0d29802
Update ModulePass::assignPassManager() to take into account Preferred
...
Pass Manager Type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33308 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-17 21:19:23 +00:00
Devang Patel
26426949f3
s/PassDebugging_New/PassDebugging/g
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33307 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-17 20:33:36 +00:00
Devang Patel
be1ffc6b8d
Update assignPassManager() signature to allow selection of preferred
...
pass manager type. This allows new FPPassManager to select Call Graph
Pass Manager (if available) as its parent.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33306 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-17 20:30:17 +00:00
Chris Lattner
8e13e90052
restructure code a bit to make use of continue (simplifying things). Generalize
...
the .zerofill directive emission to not be darwin-specific
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33304 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-17 17:44:25 +00:00
Chris Lattner
42ca450a57
darwin doesn't support .bss, but it does have .zerofill
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33303 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-17 17:43:33 +00:00
Chris Lattner
6f198dfb38
add new directive
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33302 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-17 17:42:42 +00:00
Anton Korobeynikov
5032e5a613
* Fix one more bug in PIC codegen: extra load is needed for *all*
...
non-statics.
* Introduce new option to output zero-initialized data to .bss section.
This can reduce size of binaries. Enable it by default for ELF &
Cygwin/Mingw targets. Probably, Darwin should be also added.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33299 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-17 10:33:08 +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
22fb30231b
Create the specified TargetObjInfo and use it.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33291 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-17 03:51:37 +00:00