1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-25 20:23:11 +01:00
Commit Graph

19361 Commits

Author SHA1 Message Date
Lauro Ramos Venancio
0ad4cde600 Handle packed structs in the CBackend.
llvm-svn: 39752
2007-07-11 19:56:53 +00:00
Evan Cheng
c7216b3a86 Missed a couple of places where new instructions are added due to spill / restore.
llvm-svn: 39748
2007-07-11 19:17:18 +00:00
Owen Anderson
28789d81c5 Clean up a few things based on Chris' feedback.
llvm-svn: 39747
2007-07-11 19:03:09 +00:00
Tanya Lattner
a715bbe152 Adding ability to demote phi to stack.
llvm-svn: 39744
2007-07-11 18:41:34 +00:00
Dale Johannesen
cacc6dbeb6 Fix hang compiling TimberWolf (allow for islands
of size other than 4).

llvm-svn: 39743
2007-07-11 18:32:38 +00:00
Lauro Ramos Venancio
18fc770fd0 Assert when TLS is not implemented.
llvm-svn: 39737
2007-07-11 17:19:51 +00:00
Duncan Sands
bfbe683782 Exception handling has been implemented.
llvm-svn: 39732
2007-07-11 16:59:20 +00:00
Chris Lattner
ef484ab964 Fix an oversight: for modules with no other identifying target info,
the sparc backend should be preferred when running on sparcs.

llvm-svn: 39142
2007-07-11 16:32:10 +00:00
Duncan Sands
aa83dc9037 If assertions are not enabled, we should return False here.
llvm-svn: 38535
2007-07-11 08:47:55 +00:00
Evan Cheng
2791a7ea6d No longer need to track last def / use.
llvm-svn: 38534
2007-07-11 08:47:44 +00:00
Evan Cheng
c42a2e03f1 Fix for PR1545: Revamp code that update kill information due to register reuse.
llvm-svn: 38525
2007-07-11 05:28:39 +00:00
Owen Anderson
1eaba31f12 Add FastDSE, a new algorithm for doing dead store elimination. This algorithm is not as accurate
as the current DSE, but it only a linear scan over each block, rather than quadratic.  Eventually
(once it has been improved somewhat), this will replace the current DSE.

NOTE: This has not yet been extensively tested.
llvm-svn: 38517
2007-07-11 00:46:18 +00:00
David Greene
8d77dcca00 Make this work with GLIBCXX_DEBUG.
llvm-svn: 38516
2007-07-10 22:00:30 +00:00
Evan Cheng
f6d010e93d Didn't mean the last commit. Revert.
llvm-svn: 38515
2007-07-10 22:00:16 +00:00
Dale Johannesen
ecef839eaa Fix fp_constant_op failure.
llvm-svn: 38514
2007-07-10 21:53:30 +00:00
Evan Cheng
05c784cc30 Update.
llvm-svn: 38513
2007-07-10 21:49:47 +00:00
Dale Johannesen
7325a82196 fix 80 columnn violations, increasing the world's
pedantic satisfaction level.

llvm-svn: 38512
2007-07-10 20:53:41 +00:00
Owen Anderson
bb0f7c00ab Calculate the size of a array allocation correctly.
llvm-svn: 38511
2007-07-10 20:48:38 +00:00
Owen Anderson
04b3497eb7 Fix a crasher when finding the dependency of a call.
llvm-svn: 38510
2007-07-10 20:39:07 +00:00
Owen Anderson
b11a2f3a32 Make this pass registration static as well.
llvm-svn: 38509
2007-07-10 20:21:08 +00:00
Owen Anderson
7d38ac8a37 Make the pass registration static.
llvm-svn: 38508
2007-07-10 20:20:19 +00:00
Chris Lattner
abcdeef610 add a note
llvm-svn: 38507
2007-07-10 20:03:50 +00:00
Rafael Espindola
c0d9376230 check for correct usage of the byval attribute
llvm-svn: 38506
2007-07-10 19:28:12 +00:00
Anton Korobeynikov
7971c2c9b7 During module cloning copy aliases too. This fixes PR1544
llvm-svn: 38505
2007-07-10 19:07:35 +00:00
Owen Anderson
6c92149ce5 Handle vaarg instructions correctly.
llvm-svn: 38504
2007-07-10 18:43:15 +00:00
Dan Gohman
629311ca52 Change the peep for EXTRACT_VECTOR_ELT of BUILD_PAIR to look for
the new CONCAT_VECTORS node type instead, as that's what legalize
uses now. And add a peep for EXTRACT_VECTOR_ELT of INSERT_VECTOR_ELT.

llvm-svn: 38503
2007-07-10 18:20:44 +00:00
Owen Anderson
f4bea94dbd Volatile loads and stores depend on each other.
llvm-svn: 38502
2007-07-10 18:11:42 +00:00
Evan Cheng
abcf3842bb Remove clobbersPred. Add an OptionalDefOperand to instructions which have the 's' bit.
llvm-svn: 38501
2007-07-10 18:08:01 +00:00
Evan Cheng
0ab209fa54 Remove clobbersPred.
llvm-svn: 38500
2007-07-10 18:07:08 +00:00
Owen Anderson
1f5fb875b6 Add support for finding the dependencies of call and invoke instructions.
llvm-svn: 38497
2007-07-10 17:59:22 +00:00
Evan Cheng
d80c2821af If the operand is marked M_OPTIONAL_DEF_OPERAND, then it's a def.
llvm-svn: 38496
2007-07-10 17:52:20 +00:00
Evan Cheng
87e735c4be Somehow this wasn't committed last time. M_CLOBBERS_PRED is gone.
llvm-svn: 38495
2007-07-10 17:50:43 +00:00
Owen Anderson
1bd416b823 Fix the build, and fix the handling of pointer sizes.
llvm-svn: 38494
2007-07-10 17:25:03 +00:00
Owen Anderson
1fabbda503 Fix a bunch of things from Chris' feedback
llvm-svn: 38493
2007-07-10 17:08:11 +00:00
Dan Gohman
bd0ff28e1c Fix a bug in the folding of binary operators to undef.
Thanks to Lauro for spotting this!

llvm-svn: 38491
2007-07-10 15:19:29 +00:00
Dan Gohman
6b21e11f1c Fix the folding of undef in several binary operators to recognize
undef in either the left or right operand.

llvm-svn: 38489
2007-07-10 14:20:37 +00:00
Evan Cheng
cf3b1c89a9 When a node value is only used by a CopyToReg, use the user's dest. This should not be restricted to nodes that produce only a single value.
llvm-svn: 38485
2007-07-10 07:08:32 +00:00
Evan Cheng
23dc96f640 Move DenseMapKeyInfo<SDOperand> from LegalizeDAG.cpp to SelectionDAGNodes.h
llvm-svn: 38484
2007-07-10 06:59:55 +00:00
Nick Lewycky
ea767d42e8 Update the ValueRanges interface to use value numbers instead of Value*s.
llvm-svn: 38483
2007-07-10 03:28:21 +00:00
Owen Anderson
4ce919d799 Move some key maps from std::map to DenseMap. This improves the time to optimize Anton's testcase from 17.5s
to 15.7s.

llvm-svn: 38480
2007-07-10 00:27:22 +00:00
Owen Anderson
65f9dd6973 Use a cheaper test, delaying calling find_leader() until we know that it's necessary. This improves
the time to optimize Anton's testcase from 21.1s to 17.6s.

llvm-svn: 38479
2007-07-10 00:09:25 +00:00
Dan Gohman
928144b051 Define non-intrinsic instructions for vector min, max, sqrt, rsqrt, and rcp,
in addition to the intrinsic forms. Add spill-folding entries for these new
instructions, and for the scalar min and max instrinsic instructions which
were missing. And add some preliminary ISelLowering code for using the new
non-intrinsic vector sqrt instruction, and fneg and fabs.

llvm-svn: 38478
2007-07-10 00:05:58 +00:00
Owen Anderson
2106613ce6 Add an assertion if find_leader fails.
llvm-svn: 38477
2007-07-09 23:57:18 +00:00
Owen Anderson
8d4339f8db Take advantage of the new fast SmallPtrSet assignment operator when propagating AVAIL_OUT sets.
This reduces the time to optimize Anton's testcase from 31.2s to 21.s!

llvm-svn: 38475
2007-07-09 22:29:50 +00:00
Owen Anderson
31bda05073 Make the assignment operator for SmallPtrSet much faster for normal cases.
llvm-svn: 38474
2007-07-09 22:27:20 +00:00
Dan Gohman
150487b166 Preserve volatililty and alignment information when lowering or
simplifying loads and stores.

llvm-svn: 38473
2007-07-09 22:18:38 +00:00
Devang Patel
65f3717db9 Expose struct size threhold to allow users to tweak their own setting.
llvm-svn: 38472
2007-07-09 21:19:23 +00:00
Dan Gohman
81cfdc2f19 Change getCopyToParts and getCopyFromParts to always use target-endian
register ordering, for both physical and virtual registers. Update the PPC
target lowering for calls to expect registers for the call result to
already be in target order.

llvm-svn: 38471
2007-07-09 20:59:04 +00:00
Owen Anderson
e48ed4f7a8 Make the assignment operator for SmallPtrSet return a reference, and fix a long-standing bug in the copy
ctor while I'm at it.

Thanks to Chris Lattner for help with this patch.

llvm-svn: 38470
2007-07-09 20:59:01 +00:00
Devang Patel
f1b6294e80 Fix memory leak.
llvm-svn: 38469
2007-07-09 20:52:39 +00:00