Rafael Espindola
aa7930b4f0
Align i64 and f64 at 8 byte on x86-64.
...
This is mandated table 3.1 at
http://www.x86-64.org/documentation/abi.pdf
llvm-svn: 41642
2007-08-31 12:23:58 +00:00
Evan Cheng
3157d0991b
Remove an unnecessary element, saving 4 bytes per LiveInterval.
...
llvm-svn: 41641
2007-08-31 08:26:44 +00:00
Evan Cheng
a561a94058
Use std::map instead of a (potentially very sparse) array to track val# defined by copy from the other live range. Minor compile time win when number of val# is large.
...
llvm-svn: 41640
2007-08-31 08:04:17 +00:00
Evan Cheng
064691b876
Update test case to reflect Dale's change.
...
llvm-svn: 41639
2007-08-31 06:29:32 +00:00
Dale Johannesen
81d6ecb886
Enhance APFloat to retain bits of NaNs (fixes oggenc).
...
Use APFloat interfaces for more references, mostly
of ConstantFPSDNode.
llvm-svn: 41632
2007-08-31 04:03:46 +00:00
Raul Herbster
ffa8296e3f
Instruction formats added used to generate multiply instructions of V5TE.
...
llvm-svn: 41629
2007-08-30 23:34:14 +00:00
Raul Herbster
7f1a7dc4e2
Unused relocation type reloc_arm_absolute removed.
...
llvm-svn: 41628
2007-08-30 23:31:35 +00:00
Raul Herbster
db2f42989b
Comments added. It now generates V5TE multiply instructions. However, it is still necessary to model PUWLSH bits more clearly.
...
llvm-svn: 41627
2007-08-30 23:29:26 +00:00
Raul Herbster
49b44eae34
ARM instruction table was modified by adding information to generate multiply instruction of V5TE.
...
llvm-svn: 41626
2007-08-30 23:25:47 +00:00
Raul Herbster
26e15aed5c
JITInfo now resolves function addrs and also relocations. It always emits a stub.
...
llvm-svn: 41625
2007-08-30 23:21:27 +00:00
Ted Kremenek
120f680489
Added Graphviz escaping for the '|' character.
...
llvm-svn: 41610
2007-08-30 17:01:41 +00:00
Tanya Lattner
0b279ff814
Do not run on darwin.
...
llvm-svn: 41608
2007-08-30 16:07:20 +00:00
Evan Cheng
cb317912b2
Added support to fold X86 load / store instructions. This allow rematerialized loads to be folded into their uses.
...
llvm-svn: 41599
2007-08-30 05:54:07 +00:00
Evan Cheng
e8c80ad7cd
Try fold re-materialized load instructions into its uses.
...
llvm-svn: 41598
2007-08-30 05:53:02 +00:00
Evan Cheng
58ea935f6f
Add a variant of foldMemoryOperand to fold any load / store, not just load / store from / to stack slots.
...
llvm-svn: 41597
2007-08-30 05:52:20 +00:00
Evan Cheng
0862876c80
Added CreateFrameIndex to create a FrameIndex MachineOperand without a MachineInstr.
...
llvm-svn: 41596
2007-08-30 05:50:32 +00:00
Evan Cheng
527fe7ab57
Mark load instructions with isLoad = 1.
...
llvm-svn: 41595
2007-08-30 05:49:43 +00:00
Bill Wendling
c65cf7849d
Use i64 on a PPC64 machine
...
llvm-svn: 41590
2007-08-30 00:59:19 +00:00
Dale Johannesen
e91a908971
Change LegalFPImmediates to use APFloat.
...
Add APFloat interfaces to ConstantFP, SelectionDAG.
Fix integer bit in double->APFloat conversion.
Convert LegalizeDAG to use APFloat interface in
ConstantFPSDNode uses.
llvm-svn: 41587
2007-08-30 00:23:21 +00:00
Anton Korobeynikov
5845c41e4d
Fix use of declaration inside case block
...
llvm-svn: 41584
2007-08-29 23:18:48 +00:00
Evan Cheng
5a5046b83f
Change LiveRange so it keeps a pointer to the VNInfo rather than an index.
...
Changes related modules so VNInfo's are not copied. This decrease
copy coalescing time by 45% and overall compilation time by 10% on siod.
llvm-svn: 41579
2007-08-29 20:45:00 +00:00
Anton Korobeynikov
a3531f71ca
Lower FRAME_TO_ADDR_OFFSET to zero by default (if not custom lowered)
...
llvm-svn: 41578
2007-08-29 19:28:29 +00:00
Duncan Sands
26ef2a1767
Move getX86RegNum into X86RegisterInfo and use it
...
in the trampoline lowering. Lookup the jump and
mov opcodes for the trampoline rather than hard
coding them.
llvm-svn: 41577
2007-08-29 19:01:20 +00:00
Raul Herbster
06c5a2cf9d
Alphabetize Raul's entry.
...
llvm-svn: 41576
2007-08-29 18:21:29 +00:00
Raul Herbster
69f5f4e911
New contributor added
...
llvm-svn: 41569
2007-08-29 16:51:52 +00:00
Tanya Lattner
69a679a481
Updating configure script to enable MIPS.
...
llvm-svn: 41568
2007-08-29 16:38:16 +00:00
Chris Lattner
5e16fd8310
Silence implicit 64->32-bit conversion warnings.
...
llvm-svn: 41567
2007-08-29 16:32:50 +00:00
Chris Lattner
d49a347b87
getMinSignedBits needs to take into consider the sign bit when the value is positive.
...
llvm-svn: 41566
2007-08-29 16:21:18 +00:00
Chris Lattner
c3b406a619
update these
...
llvm-svn: 41565
2007-08-29 16:15:23 +00:00
Dan Gohman
cbb2ee9062
Add an option, -view-sunit-dags, for viewing the actual SUnit DAGs used by
...
scheduling.
llvm-svn: 41556
2007-08-28 20:32:58 +00:00
Chuck Rose III
ab2719abe0
Update win32 VStudio project files to keep pace with recently added and deleted files
...
llvm-svn: 41553
2007-08-28 18:59:02 +00:00
Evan Cheng
1f3724ee2d
Recover most of the compile time regression due to recent live interval changes.
...
1. Eliminate the costly live interval "swapping".
2. Change ValueNumberInfo container from SmallVector to std::vector. The former
performs slowly when the vector size is very large.
llvm-svn: 41536
2007-08-28 08:28:51 +00:00
Bruno Cardoso Lopes
ff764398e6
Added method to get Mips register numbers
...
Changed the stack frame layout, StackGrowsUp fits better to Mips strange stack.
Stack offset calculation bug fixed!
llvm-svn: 41529
2007-08-28 05:13:42 +00:00
Bruno Cardoso Lopes
144486ca7e
Changed stack allocation On LowerFORMAL_ARGUMENTS.
...
Added comments about new stack allocation.
Expand SelectCC for i32 results
llvm-svn: 41527
2007-08-28 05:08:16 +00:00
Bruno Cardoso Lopes
96894b2c93
Mask directive completed with CalleeSave info
...
Comments for Mips directives added.
llvm-svn: 41526
2007-08-28 05:06:17 +00:00
Bruno Cardoso Lopes
b77d5cd9d5
Added methods to record SPOffsets from LowerFORMAL_ARGUMENTS
...
llvm-svn: 41525
2007-08-28 05:04:41 +00:00
Chris Lattner
73aa3d62dc
Cut off crazy computation. This helps PR1622 slightly.
...
llvm-svn: 41522
2007-08-28 04:23:55 +00:00
Devang Patel
c649f24384
Use simpler test to filter loops.
...
llvm-svn: 41516
2007-08-27 21:34:31 +00:00
Dan Gohman
c6e88b9bc2
Add explicit triples to avoid default behavior that varies by host.
...
llvm-svn: 41510
2007-08-27 20:54:48 +00:00
David Greene
5b85021be8
Update InvokeInst to work like CallInst
...
llvm-svn: 41506
2007-08-27 19:04:21 +00:00
Rafael Espindola
dc5450f7fb
Add a comment about using libc memset/memcpy or generating inline code.
...
llvm-svn: 41502
2007-08-27 17:48:26 +00:00
Duncan Sands
454200b3bf
Remove this test as it is too hard to fix after the
...
latest EH changes, and in any case it is hard to
imagine how the original bug could be reintroduced.
llvm-svn: 41497
2007-08-27 17:08:14 +00:00
Duncan Sands
a0c8b8e201
Fix this test: llvm-gcc-4.2 optimizes almost everything away,
...
resulting in zero matches, while llvm-gcc-4.1 manages to
remove one pointless selector changing the number of matches.
llvm-svn: 41494
2007-08-27 16:47:32 +00:00
Dan Gohman
123b8effaa
Make DAGCombiner's global alias analysis query more precise in the case
...
where both pointers have non-zero offsets.
llvm-svn: 41491
2007-08-27 16:32:11 +00:00
Duncan Sands
50af87bf0b
Now that we don't output cleanups by default, the action
...
offset needs to be adjusted in this test.
llvm-svn: 41490
2007-08-27 16:30:05 +00:00
Dan Gohman
2e7e251f24
If the source and destination pointers in an llvm.memmove are known
...
to not alias each other, it can be translated as an llvm.memcpy.
llvm-svn: 41489
2007-08-27 16:26:13 +00:00
Dan Gohman
0b3fc43d5e
Change comments to refer to @malloc and @free instead of %malloc and %free.
...
llvm-svn: 41488
2007-08-27 16:11:48 +00:00
Duncan Sands
883740b39f
There is an impedance matching problem between LLVM and
...
gcc exception handling: if an exception unwinds through
an invoke, then execution must branch to the invoke's
unwind target. We previously tried to enforce this by
appending a cleanup action to every selector, however
this does not always work correctly due to an optimization
in the C++ unwinding runtime: if only cleanups would be
run while unwinding an exception, then the program just
terminates without actually executing the cleanups, as
invoke semantics would require. I was hoping this
wouldn't be a problem, but in fact it turns out to be the
cause of all the remaining failures in the LLVM testsuite
(these also fail with -enable-correct-eh-support, so turning
on -enable-eh didn't make things worse!). Instead we need
to append a full-blown catch-all to the end of each
selector. The correct way of doing this depends on the
personality function, i.e. it is language dependent, so
can only be done by gcc. Thus this patch which generalizes
the eh.selector intrinsic so that it can handle all possible
kinds of action table entries (before it didn't accomodate
cleanups): now 0 indicates a cleanup, and filters have to be
specified using the number of type infos plus one rather than
the number of type infos. Related gcc patches will cause
Ada to pass a cleanup (0) to force the selector to always
fire, while C++ will use a C++ catch-all (null).
llvm-svn: 41484
2007-08-27 15:47:50 +00:00
Dan Gohman
e2c92effea
Add explicit keywords and remove spurious trailing semicolons.
...
llvm-svn: 41482
2007-08-27 14:50:10 +00:00
Rafael Espindola
3d52fe3ef3
call libc memcpy/memset if array size is bigger then threshold.
...
Coping 100MB array (after a warmup) shows that glibc 2.6.1 implementation on
x86-64 (core 2) is 30% faster (from 0.270917s to 0.188079s)
llvm-svn: 41479
2007-08-27 10:18:20 +00:00