Evan Cheng
e0dc07a83f
New entry.
...
llvm-svn: 33569
2007-01-27 02:33:22 +00:00
Evan Cheng
4618d3131c
Thumb jumptable support.
...
llvm-svn: 33568
2007-01-27 02:29:45 +00:00
Evan Cheng
9805b66063
Thumb add / sub with carry.
...
llvm-svn: 33562
2007-01-27 00:07:15 +00:00
Lauro Ramos Venancio
f1f9f05230
Some asm directives fixes for ELF.
...
Now we can compile llvm-gcc on arm-linux-gnueabi!
llvm-svn: 33558
2007-01-26 23:24:43 +00:00
Nate Begeman
80d913651d
Fix a spelling error
...
llvm-svn: 33556
2007-01-26 22:40:50 +00:00
Nate Begeman
481b84a66b
Handle multiple functions, properly mangle symbols, and fix support for
...
scattered relocations.
llvm-svn: 33555
2007-01-26 22:39:48 +00:00
Jim Laskey
fdc04d1ea7
rename files
...
llvm-svn: 33552
2007-01-26 21:38:26 +00:00
Evan Cheng
55455f0532
Represent tADDspi and tSUBspi as two-address instructions.
...
llvm-svn: 33551
2007-01-26 21:33:19 +00:00
Jim Laskey
64f4242072
Change the MachineDebugInfo to MachineModuleInfo to better reflect usage
...
for debugging and exception handling.
llvm-svn: 33550
2007-01-26 21:22:28 +00:00
Lauro Ramos Venancio
762787bed7
Fix Data16bitsDirective for ELF.
...
llvm-svn: 33549
2007-01-26 21:20:45 +00:00
Evan Cheng
2b4f267d57
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
llvm-svn: 33548
2007-01-26 20:38:26 +00:00
Lauro Ramos Venancio
ea815a6137
If the constant pool value is a extern weak symbol, emit the weak reference.
...
llvm-svn: 33543
2007-01-26 19:51:32 +00:00
Evan Cheng
d0c39ef1ca
extload -> zextload
...
llvm-svn: 33542
2007-01-26 19:13:16 +00:00
Jim Laskey
23ed7d2625
Make LABEL a builtin opcode.
...
llvm-svn: 33537
2007-01-26 14:34:52 +00:00
Jim Laskey
3df3e04941
Clarify some constants.
...
llvm-svn: 33536
2007-01-26 14:19:17 +00:00
Reid Spencer
cec82ab067
For PR761:
...
The Module::setEndianness and Module::setPointerSize methods have been
removed. Instead you can get/set the DataLayout. Adjust thise accordingly.
llvm-svn: 33530
2007-01-26 08:11:39 +00:00
Reid Spencer
6770b7e879
For PR761:
...
Remove the Endianness and PointerSize fields from the ModuleHeader and
replace it with the DataLayout field.
llvm-svn: 33529
2007-01-26 08:10:24 +00:00
Reid Spencer
00a7dd7d6b
For PR761:
...
Remove the setEndianess and setPointerSize methods. These are now
handled via the setDataLayout method.
llvm-svn: 33527
2007-01-26 08:07:57 +00:00
Reid Spencer
8949da79b5
Regenerate for PR645 and PR761
...
llvm-svn: 33525
2007-01-26 08:05:27 +00:00
Reid Spencer
1d28dc402d
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 =
llvm-svn: 33524
2007-01-26 08:04:51 +00:00
Reid Spencer
e2ac333854
For PR645:
...
Implement new syntax for local and global symbols. Types and local
symbols use the % prefix. Global variables and functions use the @ prefix.
llvm-svn: 33523
2007-01-26 08:02:52 +00:00
Reid Spencer
cca21cf060
For PR645:
...
Remove the Function::renameLocalSymbols function as it is no longer
needed.
llvm-svn: 33522
2007-01-26 08:01:30 +00:00
Reid Spencer
93b5ba7cd2
IntegerType is a sized DerivedType too.
...
llvm-svn: 33521
2007-01-26 07:51:36 +00:00
Reid Spencer
641bcdce55
Clean up comments and assert messages that still refer to the old type names.
...
llvm-svn: 33520
2007-01-26 07:37:34 +00:00
Reid Spencer
25d0264daa
Fix an assertion message.
...
llvm-svn: 33519
2007-01-26 06:30:34 +00:00
Evan Cheng
c81bceda82
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.
llvm-svn: 33517
2007-01-26 02:02:39 +00:00
Devang Patel
f1ef346a53
Remove dead code.
...
CallGraphSCCPass does not need to implement runOnModule().
It supports runOnSCC().
llvm-svn: 33516
2007-01-26 01:08:18 +00:00
Evan Cheng
c5a454b111
Need to scan the function for branches even if there aren't any constants.
...
llvm-svn: 33515
2007-01-26 01:04:44 +00:00
Devang Patel
bf44036fbf
Inherit CallGraphSCCPass directly from Pass.
...
llvm-svn: 33514
2007-01-26 00:47:38 +00:00
Evan Cheng
6a46a78547
Forgot to update this.
...
llvm-svn: 33512
2007-01-25 23:31:04 +00:00
Devang Patel
a9eae6951d
Inherit BasicBlockPass directly from Pass.
...
llvm-svn: 33511
2007-01-25 23:23:25 +00:00
Evan Cheng
a229bc12be
Add comment, fix typo, reduce memory usage, etc.
...
llvm-svn: 33510
2007-01-25 23:18:59 +00:00
Evan Cheng
a47f2cc065
I am an idiot.
...
llvm-svn: 33509
2007-01-25 23:18:16 +00:00
Evan Cheng
970ed5d59f
Fix comment.
...
llvm-svn: 33508
2007-01-25 22:48:25 +00:00
Evan Cheng
9009b02367
- 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.
llvm-svn: 33505
2007-01-25 22:25:04 +00:00
Evan Cheng
b64363a085
Added a MRegisterInfo hook that tells PEI the target is responsible for
...
rounding the stack frame to a multiple of stack alignment.
llvm-svn: 33504
2007-01-25 22:12:41 +00:00
Lauro Ramos Venancio
a3788dc56b
Fix elf object definition.
...
llvm-svn: 33502
2007-01-25 20:11:04 +00:00
Evan Cheng
7dccb7be86
Doh. Skip JT branches.
...
llvm-svn: 33501
2007-01-25 19:43:52 +00:00
Chris Lattner
1e8602cf97
Make llvm-extract preserve the callingconv of prototypes in the extracted
...
code.
llvm-svn: 33500
2007-01-25 17:38:26 +00:00
Jim Laskey
56316d12bb
1. Remove dwarf-verbose option (now asm-verbose.)
...
2. Clean up end of lines.
llvm-svn: 33499
2007-01-25 15:45:58 +00:00
Jim Laskey
0e387f9cf0
Migrate print routines to asm to be shared by exception handling.
...
llvm-svn: 33498
2007-01-25 15:12:02 +00:00
Evan Cheng
d7c809c7be
Added (preliminary) branch shortening capability to constantpool island pass.
...
llvm-svn: 33497
2007-01-25 03:12:46 +00:00
Evan Cheng
9d937d1065
Getting rid uses of evil std::set<>
...
llvm-svn: 33496
2007-01-25 03:07:27 +00:00
Chris Lattner
18aeb42a6f
Fix test/CFrontend/2007-01-24-InlineAsmCModifier.c on X86. The %c modifier
...
says that no $ prefix should be emitted on X86.
llvm-svn: 33495
2007-01-25 02:53:24 +00:00
Chris Lattner
c3f461a03c
Fix test/CFrontend/2007-01-24-InlineAsmCModifier.c on PPC
...
llvm-svn: 33494
2007-01-25 02:52:50 +00:00
Andrew Lenharth
42ced99f24
FTOIT and ITOFT are bit converts, and if we drop 21264s, are always available
...
llvm-svn: 33492
2007-01-24 21:09:16 +00:00
Jim Laskey
ba1dc7a8c7
Call frames for intel.
...
llvm-svn: 33490
2007-01-24 19:15:24 +00:00
Jim Laskey
ebaec45158
80 columns
...
llvm-svn: 33489
2007-01-24 18:50:57 +00:00
Jim Laskey
a67f14502d
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.)
llvm-svn: 33488
2007-01-24 18:45:13 +00:00
Andrew Lenharth
fcb8af0f84
Fix unordered fp on alpha
...
llvm-svn: 33487
2007-01-24 18:43:14 +00:00
Chris Lattner
784201d1b9
Fix a misencoding of CBW and CWD. This fixes PR1030.
...
llvm-svn: 33486
2007-01-24 18:31:00 +00:00
Jim Laskey
dabb50be28
Use asm printer to emit alignment
...
llvm-svn: 33485
2007-01-24 13:12:32 +00:00
Evan Cheng
c6db78ab84
Use PC relative ldr to load from a constantpool in Thumb mode.
...
llvm-svn: 33484
2007-01-24 08:53:17 +00:00
Bill Wendling
c0ecd3ff91
Make ivars private and use getters. Have the MachOWriter return "Mach-O
...
Writer" for the pass name.
llvm-svn: 33483
2007-01-24 07:13:56 +00:00
Evan Cheng
bfd7e70770
Renamed getTypeAlignmentShift() to getPreferredTypeAlignmentShift().
...
llvm-svn: 33482
2007-01-24 07:03:39 +00:00
Bill Wendling
68d62e3a4c
Add a field for and construction of the PPCMachOWriterInfo object.
...
llvm-svn: 33480
2007-01-24 03:41:36 +00:00
Bill Wendling
a34cc9d823
Move the getJTRelocation method out of here.
...
llvm-svn: 33479
2007-01-24 03:40:33 +00:00
Bill Wendling
d6f818e2fa
Use the TargetMachOWriterInfo class to get this information.
...
llvm-svn: 33478
2007-01-24 03:38:47 +00:00
Bill Wendling
24e03bd501
New "TargetMachOWriterInfo" class. It holds target-specific information
...
that the MachOWriter needs in order to do its writing stuff 'n things.
llvm-svn: 33475
2007-01-24 03:36:05 +00:00
Evan Cheng
1630c86beb
Allow [ fi#c, imm ] as ARM load / store addresses.
...
llvm-svn: 33474
2007-01-24 02:45:25 +00:00
Evan Cheng
fa613cdd06
Various Thumb mode load / store isel bug fixes.
...
llvm-svn: 33472
2007-01-24 02:21:22 +00:00
Evan Cheng
5f947e4e2f
- 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.
llvm-svn: 33470
2007-01-23 22:59:13 +00:00
Devang Patel
f8db9e212e
Fix typo.
...
llvm-svn: 33467
2007-01-23 21:55:17 +00:00
Devang Patel
cfd7cfeccd
Add CallGraphSCCPass::assignPassManager().
...
This enables CalLGraphPassManager.
llvm-svn: 33466
2007-01-23 21:52:35 +00:00
Evan Cheng
dc97533dd3
Darwin HiddenDirective is .private_extern.
...
llvm-svn: 33465
2007-01-23 19:06:03 +00:00
Anton Korobeynikov
2079992c16
Moved disassembler to libSystem
...
llvm-svn: 33461
2007-01-23 10:26:08 +00:00
Evan Cheng
b6a4a7f72a
PEI is now responsible for adding MaxCallFrameSize to frame size and align the stack. Each target can further adjust the frame size if necessary.
...
llvm-svn: 33460
2007-01-23 09:38:11 +00:00
Chris Lattner
c2b21d2900
Switch this to use SmallSet to avoid mallocs in the common case.
...
llvm-svn: 33457
2007-01-23 00:59:48 +00:00
Evan Cheng
d9d93832b0
hasFP() is now a virtual method of MRegisterInfo.
...
llvm-svn: 33455
2007-01-23 00:57:47 +00:00
Chris Lattner
f830aab43a
Fix a bunch of inline asm failures
...
llvm-svn: 33454
2007-01-23 00:36:17 +00:00
Evan Cheng
cea1d1c5f8
Remove the DoubleTy special case.
...
llvm-svn: 33449
2007-01-22 23:13:55 +00:00
Evan Cheng
25584afca7
ARM AAPCS abi (Linux, etc.) requires 8-byte double / long alignment; Mac
...
requires 4-bytes alignment.
llvm-svn: 33448
2007-01-22 23:13:01 +00:00
Evan Cheng
c76a2c6c18
Double and long preferred alignment set to 8 bytes.
...
llvm-svn: 33447
2007-01-22 23:11:06 +00:00
Evan Cheng
8de7964067
Double and long preferred alignment is 8 byte.
...
llvm-svn: 33446
2007-01-22 23:09:50 +00:00
Evan Cheng
ab307e2180
- getTypeAlignmentShift() should be returning preferred alignment, not ABI
...
alignment.
- getPreferredAlignmentLog(): remove Double special case.
llvm-svn: 33445
2007-01-22 23:08:19 +00:00
Evan Cheng
818c6bdfa2
Linux GOT indirect reference is only necessary in PIC mode.
...
llvm-svn: 33441
2007-01-22 21:34:25 +00:00
Evan Cheng
b55dabdc80
Double and Long preferred alignment is 4 for Darwin, 8 for Linux.
...
llvm-svn: 33440
2007-01-22 21:24:13 +00:00
Evan Cheng
30ef170ddf
Use bl to call Thumb fuctions directly.
...
llvm-svn: 33433
2007-01-22 19:40:10 +00:00
Reid Spencer
7811139c74
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.
llvm-svn: 33427
2007-01-22 05:51:25 +00:00
Jeff Cohen
e1e3a83b49
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
llvm-svn: 33425
2007-01-21 19:19:31 +00:00
Chris Lattner
601692407e
add a note
...
llvm-svn: 33423
2007-01-21 07:03:37 +00:00
Reid Spencer
82909e607c
Whoops, fix typo in last commit.
...
llvm-svn: 33417
2007-01-21 02:29:10 +00:00
Reid Spencer
e33c18f4d2
For PR970:
...
Clean up handling of isFloatingPoint() and dealing with PackedType.
Patch by Gordon Henriksen!
llvm-svn: 33415
2007-01-21 00:29:26 +00:00
Reid Spencer
71e0eb3771
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.
llvm-svn: 33414
2007-01-20 23:35:48 +00:00
Reid Spencer
c5140714bc
Implement a getTypeSizeInBits method. This helps in transforms that want
...
to ensure the bit size of a type is identical before proceeding.
llvm-svn: 33413
2007-01-20 23:32:04 +00:00
Owen Anderson
4de8fa6334
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.
llvm-svn: 33411
2007-01-20 23:07:13 +00:00
Chris Lattner
86af1504b4
trivial cleanup
...
llvm-svn: 33410
2007-01-20 22:39:15 +00:00
Chris Lattner
9df9e3e57b
Teach TargetData to handle 'preferred' alignment for each target, and use
...
these alignment amounts to align scalars when we can. Patch by Scott Michel!
llvm-svn: 33409
2007-01-20 22:35:55 +00:00
Chris Lattner
dde5663eea
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.
llvm-svn: 33408
2007-01-20 20:51:43 +00:00
Reid Spencer
826ff3f805
For PR808:
...
NetBSD also doesn't have pthread_mutexattr_setpshared
llvm-svn: 33406
2007-01-20 20:44:38 +00:00
Reid Spencer
16f559f465
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.
llvm-svn: 33403
2007-01-20 20:12:29 +00:00
Evan Cheng
6271410520
Round up stack to multiple of alignment only if it's a leaf function without alloca.
...
llvm-svn: 33401
2007-01-20 10:22:33 +00:00
Evan Cheng
174826c1b9
One more try...
...
llvm-svn: 33400
2007-01-20 10:17:53 +00:00
Evan Cheng
672910d722
Last check-in was bogus. There is no need to align the stack if the function is a leaf function (and without alloca).
...
llvm-svn: 33399
2007-01-20 10:11:56 +00:00
Evan Cheng
ae02dfb090
Fix for PR1108: type of insert_vector_elt index operand is PtrVT, not MVT::i32.
...
llvm-svn: 33398
2007-01-20 10:10:26 +00:00
Owen Anderson
906c09f205
Correct a comment.
...
llvm-svn: 33397
2007-01-20 10:07:23 +00:00
Evan Cheng
4e647ad333
Remove an unused variable.
...
llvm-svn: 33396
2007-01-20 09:21:54 +00:00
Reid Spencer
14d12fbaa6
Implement bit-accurate sext instruction.
...
This patch fixes test/Integer/2007-01-17-TruncSext.ll
llvm-svn: 33394
2007-01-20 08:32:52 +00:00
Evan Cheng
5ea6a8d9e4
Prologue and epilogue bugs for non-Darwin targets.
...
llvm-svn: 33390
2007-01-20 03:24:07 +00:00
Evan Cheng
a6803554ab
Clean up ARM PEI code.
...
llvm-svn: 33389
2007-01-20 02:09:25 +00:00
Evan Cheng
5807fbc934
Backend is reponsible for aligning the stack.
...
llvm-svn: 33388
2007-01-20 02:08:16 +00:00
Evan Cheng
7e02b3a690
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.
...
llvm-svn: 33387
2007-01-20 02:07:13 +00:00
Evan Cheng
60dd79e443
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 ...
llvm-svn: 33382
2007-01-19 22:40:14 +00:00
Reid Spencer
b2b35908d6
Unbreak Darwin.
...
llvm-svn: 33375
2007-01-19 22:04:24 +00:00
Reid Spencer
2b799d8208
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.
llvm-svn: 33374
2007-01-19 21:41:04 +00:00
Reid Spencer
5d29c5a81b
Handle each of stderr/stdin/stdout separately.
...
llvm-svn: 33373
2007-01-19 21:30:39 +00:00
Reid Spencer
4bcddb2f04
Remove dead methods in the ValTypes.
...
llvm-svn: 33372
2007-01-19 21:25:12 +00:00
Reid Spencer
af3564823f
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.
llvm-svn: 33371
2007-01-19 21:20:31 +00:00
Reid Spencer
14b42c0040
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.
llvm-svn: 33370
2007-01-19 21:13:56 +00:00
Evan Cheng
5d0be572b5
Code clean up. Use def : pat instead of defining new instructions.
...
llvm-svn: 33368
2007-01-19 20:27:35 +00:00
Andrew Lenharth
0014d1c74b
fix build on amd64
...
llvm-svn: 33367
2007-01-19 20:17:59 +00:00
Evan Cheng
51292f4863
isDarwin -> isTargetDarwin
...
llvm-svn: 33366
2007-01-19 19:28:01 +00:00
Evan Cheng
99725bd310
Restructure code a bit to make use of continue (simplifying things). Generalize
...
the .zerofill directive emission to not be darwin-specific.
llvm-svn: 33365
2007-01-19 19:25:36 +00:00
Evan Cheng
025816f18c
Darwin doesn't support .bss, but it does have .zerofill
...
llvm-svn: 33364
2007-01-19 19:23:47 +00:00
Evan Cheng
b1a4190523
Introduce TargetType's ELF and Darwin.
...
llvm-svn: 33363
2007-01-19 19:22:40 +00:00
Evan Cheng
9203bd4339
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.
llvm-svn: 33362
2007-01-19 18:59:56 +00:00
Evan Cheng
ced4fcb608
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
llvm-svn: 33361
2007-01-19 17:51:44 +00:00
Lauro Ramos Venancio
f53f62b91d
Fix section definition.
...
llvm-svn: 33359
2007-01-19 17:33:22 +00:00
Anton Korobeynikov
944088f221
Adding disassembler interface and external hook to udis86 library.
...
llvm-svn: 33358
2007-01-19 17:25:17 +00:00
Evan Cheng
c6e1d453d3
ARM backend contribution from Apple.
...
llvm-svn: 33353
2007-01-19 07:51:42 +00:00
Nick Lewycky
b8c2b60bb5
Needed to build on PPC Linux.
...
llvm-svn: 33352
2007-01-19 04:36:02 +00:00
Reid Spencer
d331480e5b
Back out last changes for dataLayout. Much more work is needed.
...
llvm-svn: 33347
2007-01-19 00:07:16 +00:00
Reid Spencer
de679f8779
For PR761:
...
Implement reading and writing of the Module's data layout string.
llvm-svn: 33346
2007-01-18 23:24:24 +00:00
Evan Cheng
f6b1a88a1a
- 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.
llvm-svn: 33345
2007-01-18 22:27:12 +00:00
Chris Lattner
ef4715a124
Fix InstCombine/2007-01-18-VectorInfLoop.ll, a case where instcombine
...
infinitely loops.
llvm-svn: 33343
2007-01-18 22:16:33 +00:00
Reid Spencer
7ba10cda74
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.
llvm-svn: 33337
2007-01-18 18:54:33 +00:00
Reid Spencer
b52af65aaa
Use a cheaper computation.
...
llvm-svn: 33336
2007-01-18 18:14:49 +00:00
Reid Spencer
08e261a5f6
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.
llvm-svn: 33335
2007-01-18 18:01:32 +00:00
Chris Lattner
54dac5f09e
move contents of PR587 to here.
...
llvm-svn: 33333
2007-01-18 07:34:57 +00:00
Reid Spencer
80bf052680
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.
llvm-svn: 33328
2007-01-18 02:59:54 +00:00
Bill Wendling
62dff8125a
The zerofill directive needs a newline after it.
...
llvm-svn: 33327
2007-01-18 02:30:19 +00:00
Reid Spencer
e242773c58
Use the new maskToBitWidth function to ensure that the results of
...
computations do not overflow the intended bit width.
llvm-svn: 33326
2007-01-18 02:12:51 +00:00
Reid Spencer
bff2bccb7c
Add an inline helper function that masks a GenericValue to a specified
...
bit width.
llvm-svn: 33325
2007-01-18 02:12:10 +00:00
Evan Cheng
7ff918163b
Minor code clean up.
...
llvm-svn: 33323
2007-01-18 01:49:58 +00:00
Reid Spencer
539c40505b
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.
llvm-svn: 33321
2007-01-18 01:32:46 +00:00
Reid Spencer
0524da8d3d
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.
llvm-svn: 33318
2007-01-18 01:25:42 +00:00
Reid Spencer
de3db66983
Make sure we truncate stored values to their bit width.
...
llvm-svn: 33317
2007-01-18 01:24:02 +00:00
Bill Wendling
af4f1b8791
Have the OutputBuffer take the is64Bit and isLittleEndian booleans.
...
llvm-svn: 33316
2007-01-18 01:23:11 +00:00
Chris Lattner
770735e1ca
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.
llvm-svn: 33315
2007-01-18 01:15:58 +00:00
Chris Lattner
e0c1ba6269
add new JumpTableSpecialLabelPrefix hook to asmprinter for jumptable emission.
...
llvm-svn: 33314
2007-01-18 01:12:56 +00:00
Bill Wendling
9306626c66
Changed to use the OutputBuffer instead of the methods in MachO and ELF
...
writers.
llvm-svn: 33311
2007-01-17 22:22:31 +00:00
Devang Patel
756af73d3a
Add CGPassManager.
...
llvm-svn: 33309
2007-01-17 21:45:01 +00:00
Devang Patel
cda3b4d76f
Update ModulePass::assignPassManager() to take into account Preferred
...
Pass Manager Type.
llvm-svn: 33308
2007-01-17 21:19:23 +00:00
Devang Patel
b40f9ee72e
s/PassDebugging_New/PassDebugging/g
...
llvm-svn: 33307
2007-01-17 20:33:36 +00:00
Devang Patel
866ecabe21
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.
llvm-svn: 33306
2007-01-17 20:30:17 +00:00
Chris Lattner
cea9f391af
restructure code a bit to make use of continue (simplifying things). Generalize
...
the .zerofill directive emission to not be darwin-specific
llvm-svn: 33304
2007-01-17 17:44:25 +00:00
Chris Lattner
5f4435800e
darwin doesn't support .bss, but it does have .zerofill
...
llvm-svn: 33303
2007-01-17 17:43:33 +00:00
Chris Lattner
1a2c170bc4
add new directive
...
llvm-svn: 33302
2007-01-17 17:42:42 +00:00
Anton Korobeynikov
2509765bef
* 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.
llvm-svn: 33299
2007-01-17 10:33:08 +00:00
Bill Wendling
6cf6bb2d24
Revert patch.
...
llvm-svn: 33298
2007-01-17 09:06:13 +00:00