Evan Cheng
37eb9de565
Add debugging code.
...
llvm-svn: 49566
2008-04-12 00:22:01 +00:00
Chris Lattner
08453a5234
Reenable JIT symbol table.
...
llvm-svn: 49548
2008-04-11 18:11:56 +00:00
Evan Cheng
27262ddcf3
Do not add empty live intervals to handled_. They should never be undone for backtracking.
...
llvm-svn: 49544
2008-04-11 17:55:47 +00:00
Evan Cheng
6e52146f16
If a PHI node has a single implicit_def source, replace it with an implicit_def instead of a copy.
...
llvm-svn: 49543
2008-04-11 17:54:45 +00:00
Evan Cheng
b389b78462
Use of implicit_def is not part of live interval. Create empty intervals for the uses when the live interval is being spilled.
...
llvm-svn: 49542
2008-04-11 17:53:36 +00:00
Devang Patel
13b2e01d4a
Change llvm tools install location.
...
llvm-svn: 49540
2008-04-11 17:45:39 +00:00
Chris Lattner
01e31663c8
improvements for IntrusiveRefCntPtr, patch by Mikhail Glushenkov
...
llvm-svn: 49538
2008-04-11 16:42:06 +00:00
Duncan Sands
0aa1fc7829
The Ada front-end from the LLVM 2.2 release
...
cannot be build with GNAT GPL 2006, only with
GNAT GPL 2005.
llvm-svn: 49529
2008-04-11 13:24:43 +00:00
Gabor Greif
f6552899f9
detabify
...
llvm-svn: 49524
2008-04-11 09:34:57 +00:00
Owen Anderson
15e930588a
Add testcase for PR2213.
...
llvm-svn: 49517
2008-04-11 05:13:32 +00:00
Owen Anderson
f55bae07b7
Fix PR2213 by simultaneously making GVN more aggressive with the return values
...
of calls and less aggressive with non-readnone calls.
llvm-svn: 49516
2008-04-11 05:11:49 +00:00
Evan Cheng
56ca7e285a
New test.
...
llvm-svn: 49514
2008-04-10 23:49:09 +00:00
Evan Cheng
478e43e7a5
Remove implicit_def instructions that become dead as result of coalescing.
...
llvm-svn: 49513
2008-04-10 23:48:35 +00:00
Evan Cheng
52208a738f
Allow registers defined by implicit_def to be clobbered.
...
llvm-svn: 49512
2008-04-10 23:47:53 +00:00
Dan Gohman
9c8e4ef9a9
Fix a typo in a comment.
...
llvm-svn: 49504
2008-04-10 23:02:38 +00:00
Dan Gohman
aa52f1c5b0
Fix a typo in a comment.
...
llvm-svn: 49502
2008-04-10 22:27:06 +00:00
Owen Anderson
392a40e40a
Fix for PR2190. Memdep's non-local caching was checking dirtied blocks in the
...
wrong order.
llvm-svn: 49499
2008-04-10 22:13:32 +00:00
Dan Gohman
26c2127be9
Make several symbols static.
...
llvm-svn: 49496
2008-04-10 21:11:47 +00:00
Dan Gohman
318d9a6605
Teach InstCombine's ComputeMaskedBits to handle pointer expressions
...
in addition to integer expressions. Rewrite GetOrEnforceKnownAlignment
as a ComputeMaskedBits problem, moving all of its special alignment
knowledge to ComputeMaskedBits as low-zero-bits knowledge.
Also, teach ComputeMaskedBits a few basic things about Mul and PHI
instructions.
This improves ComputeMaskedBits-based simplifications in a few cases,
but more noticeably it significantly improves instcombine's alignment
detection for loads, stores, and memory intrinsics.
llvm-svn: 49492
2008-04-10 18:43:06 +00:00
Evan Cheng
6f164e3814
A copy instruction may use a register multiple times on some targets. Change them all.
...
llvm-svn: 49491
2008-04-10 18:38:47 +00:00
Evan Cheng
c79e80c679
Add comment.
...
llvm-svn: 49469
2008-04-10 08:03:14 +00:00
Chris Lattner
9f994482f5
add a note, this is actually not too bad to implement.
...
llvm-svn: 49466
2008-04-10 05:54:50 +00:00
Chris Lattner
869325c4c4
move the x86-32 part of PR2108 here.
...
llvm-svn: 49465
2008-04-10 05:37:47 +00:00
Chris Lattner
3b289289a7
Fix the x86-64 side of PR2108 by adding a v2f64 version of
...
MOVZQI2PQIrr. This would be better handled as a dag combine
(with the goal of eliminating the bitconvert) but I don't know
how to do that safely. Thoughts welcome.
llvm-svn: 49463
2008-04-10 05:13:43 +00:00
Chris Lattner
da0c256cab
produce an error on invalid input instead of asserting:
...
def : Pat<((v2f64 (vector_shuffle immAllZerosV_bc,
^
llvm-svn: 49462
2008-04-10 04:48:34 +00:00
Evan Cheng
1803e20a62
Teach branch folding pass about implicit_def instructions. Unfortunately we can't just eliminate them since register scavenger expects every register use to be defined. However, we can delete them when there are no intra-block uses. Carefully removing some implicit def's which enable more blocks to be optimized away.
...
llvm-svn: 49461
2008-04-10 02:32:10 +00:00
Chris Lattner
0bd4d7eef1
Disable an xform we've had for a long time, pow(x,0.5) -> sqrt.
...
This is not safe for all inputs.
llvm-svn: 49458
2008-04-10 02:07:51 +00:00
Evan Cheng
c0aac87374
Move memcpy / memset optimization pass after GVN.
...
llvm-svn: 49457
2008-04-10 01:33:05 +00:00
Evan Cheng
def576f9e6
- More aggressively coalescing away copies whose source is defined by an implicit_def.
...
- Added insert_subreg coalescing support.
llvm-svn: 49448
2008-04-09 20:57:25 +00:00
Dan Gohman
b3a511b236
Make isVectorClearMaskLegal's operand list const.
...
llvm-svn: 49446
2008-04-09 20:09:42 +00:00
Dan Gohman
b05ea92f80
Fix some minor errors in comments.
...
llvm-svn: 49445
2008-04-09 20:08:06 +00:00
Dan Gohman
0586403622
Add const qualifiers.
...
llvm-svn: 49443
2008-04-09 18:31:41 +00:00
Dan Gohman
f03c4d87c0
Update comments to use 2.0 syntax type names.
...
llvm-svn: 49442
2008-04-09 18:24:25 +00:00
Dan Gohman
f4cd5a4801
Add XMM1 as a second return value register for f32 and f64 on x86-64. This
...
is needed for the x86-64-ABI handling of structs that contain floating-point
members that are returned by value.
llvm-svn: 49441
2008-04-09 17:54:37 +00:00
Dan Gohman
9f7c4f6e16
Add DX as a second return value register for i16 on x86.
...
llvm-svn: 49440
2008-04-09 17:53:38 +00:00
Chris Lattner
be01a5f699
Generalize getUnaryFloatFunction to handle any FP unary function, automatically
...
figuring out the suffix to use. implement pow(2,x) -> exp2(x).
llvm-svn: 49437
2008-04-09 17:48:11 +00:00
Chris Lattner
5d0cbe7d22
remove capital letter from test name.
...
llvm-svn: 49436
2008-04-09 17:46:36 +00:00
Chris Lattner
0eb93cf8d0
use the new ConstantFP::get method to make this work with
...
long double and simplify the code.
llvm-svn: 49435
2008-04-09 17:17:35 +00:00
Chris Lattner
02cc33d0ad
ConstantFP::get should be static.
...
llvm-svn: 49434
2008-04-09 17:16:28 +00:00
Nate Begeman
41d0309ce8
Fix a bug where an incorrect bit mask would be generated if a target's last asm
...
string began at a power of 2 in the string index. For example, if "ret" started
at position 16, the ret instruction would be assigned code 16, but the mask would be AsmChars[] + Code & 15, not Code & 31.
llvm-svn: 49433
2008-04-09 16:24:11 +00:00
Devang Patel
47b4a18b75
Be conservative if getresult operand is neither call nor invoke.
...
llvm-svn: 49430
2008-04-09 15:58:24 +00:00
Owen Anderson
ca7e0e21f3
Factor a bunch of functionality related to memcpy and memset transforms out of
...
GVN and into its own pass.
llvm-svn: 49419
2008-04-09 08:23:16 +00:00
Owen Anderson
0d844f6205
Remove accidentally duplicated code.
...
llvm-svn: 49418
2008-04-09 07:55:01 +00:00
Evan Cheng
94983505c5
Unbreak teh build.
...
llvm-svn: 49417
2008-04-09 07:06:01 +00:00
Chris Lattner
843ee88189
add a simplified accessor for creating an fp constant of a
...
particular value but variable type.
llvm-svn: 49416
2008-04-09 06:38:30 +00:00
Evan Cheng
f35cc57821
Missed a hasInterval check.
...
llvm-svn: 49415
2008-04-09 01:30:15 +00:00
Chris Lattner
9d4d2f566e
add a version of ConstantFP::get that doesn't take a redundant Type* value,
...
start migrating code over to use it.
llvm-svn: 49413
2008-04-09 00:45:01 +00:00
Chris Lattner
976ea8990e
many cleanups to the pow optimizer. Allow it to handle powf,
...
add support for pow(x, 2.0) -> x*x.
llvm-svn: 49411
2008-04-09 00:07:45 +00:00
Chris Lattner
6e11e1a381
make ConstantFP::isExactlyValue work for long double as well.
...
llvm-svn: 49410
2008-04-09 00:03:58 +00:00
Devang Patel
f08f0a6de6
Add CreateGetResult()
...
llvm-svn: 49398
2008-04-08 20:41:22 +00:00