Reid Spencer [Fri, 13 Jul 2007 10:05:30 +0000 (10:05 +0000)]
Regenerate to pick up Gabor's changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39802
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Fri, 13 Jul 2007 10:02:45 +0000 (10:02 +0000)]
Set the mime-type of this file to text/plain because (silly) SVN
doesn't know that application/x-sh is text.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39801
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Fri, 13 Jul 2007 09:48:29 +0000 (09:48 +0000)]
* llvm.spec.in: update blurb
* autoconf/AutoRegen.sh: use variables for autofoo versions
* autoconf/configure.ac: test for some more functions
that are not guaranteed on solaris
Note: the svn:mime-type of autoconf/AutoRegen.sh
should be set to something that allows for
text compares using svn diff
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39800
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Thu, 12 Jul 2007 21:41:30 +0000 (21:41 +0000)]
Reimplement removing stores to allocas at the end of a function. This should be safe now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39790
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Thu, 12 Jul 2007 18:08:51 +0000 (18:08 +0000)]
Make the condition-checking for free with non-trivial dependencies more correct.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39789
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Thu, 12 Jul 2007 17:52:20 +0000 (17:52 +0000)]
Remove the end-block handling code. It was unsafe, and making it safe would have resulted in falling back to the slow DSE case. I need to think some more about the right way to handle this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39788
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Thu, 12 Jul 2007 16:45:35 +0000 (16:45 +0000)]
ARM: make branch folder remove unconditional branches
following jump tables that it earlier inserted. This
would be OK on other targets but is needed for correctness
only on ARM (constant islands needs to find jump tables).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39782
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Thu, 12 Jul 2007 13:51:39 +0000 (13:51 +0000)]
The type ids making up a filter are unsigned, and
should be output as unsigned values. Checked against
gcc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39775
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Thu, 12 Jul 2007 13:31:38 +0000 (13:31 +0000)]
checked in as obvious,
thanks Benoit Boissinot!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39774
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Thu, 12 Jul 2007 13:21:08 +0000 (13:21 +0000)]
fix the remaining 3 testcases that missed a target triple
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39773
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 12 Jul 2007 06:31:38 +0000 (06:31 +0000)]
another missed SSE optimization
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39772
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Thu, 12 Jul 2007 00:06:21 +0000 (00:06 +0000)]
Let MemoryDependenceAnalysis take care of updating AliasAnalysis.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39769
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 11 Jul 2007 23:54:25 +0000 (23:54 +0000)]
New test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39768
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 11 Jul 2007 23:47:28 +0000 (23:47 +0000)]
Preserve analysis info.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39767
91177308-0d34-0410-b5e6-
96231b3b80d8
David Greene [Wed, 11 Jul 2007 23:44:08 +0000 (23:44 +0000)]
Get rid of annoying spaces.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39766
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Wed, 11 Jul 2007 23:24:41 +0000 (23:24 +0000)]
Added support for Mips specific GAS directives
Fixed print immediate
Fixed Identation on MipsISelDAGToDAG.cpp
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39764
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Wed, 11 Jul 2007 23:21:31 +0000 (23:21 +0000)]
Added support for framepointer
Prologue/Epilogue support fp,ra save/restore and use the stack frame the right
way!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39763
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Wed, 11 Jul 2007 23:19:17 +0000 (23:19 +0000)]
Handle the case where an entire structure is freed, and its dependency is a store to a field within
that structure.
Also, refactor the runOnBasicBlock() function, splitting some of the special cases into separate functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39762
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Wed, 11 Jul 2007 23:17:41 +0000 (23:17 +0000)]
Now that stack is represented the right way, LOA starts at 0
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39761
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Wed, 11 Jul 2007 23:16:16 +0000 (23:16 +0000)]
Fixed AddLiveOut issues
FI's created the write way to represent Mips stack
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39760
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Wed, 11 Jul 2007 22:47:02 +0000 (22:47 +0000)]
Removed unused immediate PatLeaf, fixed lui instruction
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39759
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Wed, 11 Jul 2007 22:44:21 +0000 (22:44 +0000)]
Added MipsMachineFunction class, to hold Mips dinamic stack info when inserting Prologue/Epilog
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39758
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Wed, 11 Jul 2007 21:06:56 +0000 (21:06 +0000)]
Add support for eliminate stores to stack-allocated memory locations at the end
of a function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39754
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Wed, 11 Jul 2007 20:38:34 +0000 (20:38 +0000)]
Handle eliminating stores that occur right before a free.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39753
91177308-0d34-0410-b5e6-
96231b3b80d8
Lauro Ramos Venancio [Wed, 11 Jul 2007 19:56:53 +0000 (19:56 +0000)]
Handle packed structs in the CBackend.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39752
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Wed, 11 Jul 2007 19:51:06 +0000 (19:51 +0000)]
Emit correct linkage. Patch by Roman Samoilov.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39751
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 11 Jul 2007 19:29:05 +0000 (19:29 +0000)]
Add test case for PR1545.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39749
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 11 Jul 2007 19:17:18 +0000 (19:17 +0000)]
Missed a couple of places where new instructions are added due to spill / restore.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39748
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Wed, 11 Jul 2007 19:03:09 +0000 (19:03 +0000)]
Clean up a few things based on Chris' feedback.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39747
91177308-0d34-0410-b5e6-
96231b3b80d8
Tanya Lattner [Wed, 11 Jul 2007 18:41:34 +0000 (18:41 +0000)]
Adding ability to demote phi to stack.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39744
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Wed, 11 Jul 2007 18:32:38 +0000 (18:32 +0000)]
Fix hang compiling TimberWolf (allow for islands
of size other than 4).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39743
91177308-0d34-0410-b5e6-
96231b3b80d8
Lauro Ramos Venancio [Wed, 11 Jul 2007 17:19:51 +0000 (17:19 +0000)]
Assert when TLS is not implemented.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39737
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Wed, 11 Jul 2007 16:59:20 +0000 (16:59 +0000)]
Exception handling has been implemented.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39732
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 11 Jul 2007 16:32:10 +0000 (16:32 +0000)]
Fix an oversight: for modules with no other identifying target info,
the sparc backend should be preferred when running on sparcs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39142
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Wed, 11 Jul 2007 08:47:55 +0000 (08:47 +0000)]
If assertions are not enabled, we should return False here.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38535
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 11 Jul 2007 08:47:44 +0000 (08:47 +0000)]
No longer need to track last def / use.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38534
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 11 Jul 2007 05:28:39 +0000 (05:28 +0000)]
Fix for PR1545: Revamp code that update kill information due to register reuse.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38525
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Wed, 11 Jul 2007 03:00:11 +0000 (03:00 +0000)]
Adjust this per the changes to the configuration script in the llvm-top module.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38521
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Wed, 11 Jul 2007 00:46:18 +0000 (00:46 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38517
91177308-0d34-0410-b5e6-
96231b3b80d8
David Greene [Tue, 10 Jul 2007 22:00:30 +0000 (22:00 +0000)]
Make this work with GLIBCXX_DEBUG.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38516
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 10 Jul 2007 22:00:16 +0000 (22:00 +0000)]
Didn't mean the last commit. Revert.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38515
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Tue, 10 Jul 2007 21:53:30 +0000 (21:53 +0000)]
Fix fp_constant_op failure.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38514
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 10 Jul 2007 21:49:47 +0000 (21:49 +0000)]
Update.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38513
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Tue, 10 Jul 2007 20:53:41 +0000 (20:53 +0000)]
fix 80 columnn violations, increasing the world's
pedantic satisfaction level.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38512
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 10 Jul 2007 20:48:38 +0000 (20:48 +0000)]
Calculate the size of a array allocation correctly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38511
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 10 Jul 2007 20:39:07 +0000 (20:39 +0000)]
Fix a crasher when finding the dependency of a call.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38510
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 10 Jul 2007 20:21:08 +0000 (20:21 +0000)]
Make this pass registration static as well.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38509
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 10 Jul 2007 20:20:19 +0000 (20:20 +0000)]
Make the pass registration static.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38508
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 10 Jul 2007 20:03:50 +0000 (20:03 +0000)]
add a note
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38507
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 10 Jul 2007 19:28:12 +0000 (19:28 +0000)]
check for correct usage of the byval attribute
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38506
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Tue, 10 Jul 2007 19:07:35 +0000 (19:07 +0000)]
During module cloning copy aliases too. This fixes PR1544
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38505
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 10 Jul 2007 18:43:15 +0000 (18:43 +0000)]
Handle vaarg instructions correctly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38504
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 10 Jul 2007 18:20:44 +0000 (18:20 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38503
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 10 Jul 2007 18:11:42 +0000 (18:11 +0000)]
Volatile loads and stores depend on each other.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38502
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 10 Jul 2007 18:08:01 +0000 (18:08 +0000)]
Remove clobbersPred. Add an OptionalDefOperand to instructions which have the 's' bit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38501
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 10 Jul 2007 18:07:08 +0000 (18:07 +0000)]
Remove clobbersPred.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38500
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 10 Jul 2007 18:06:29 +0000 (18:06 +0000)]
Add OptionalDefOperand. Remove clobbersPred. Also add DefinesPredicate to be used by if-converter.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38499
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 10 Jul 2007 18:05:01 +0000 (18:05 +0000)]
Try committing again. Add OptionalDefOperand. Remove clobbersPred.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38498
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 10 Jul 2007 17:59:22 +0000 (17:59 +0000)]
Add support for finding the dependencies of call and invoke instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38497
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 10 Jul 2007 17:52:20 +0000 (17:52 +0000)]
If the operand is marked M_OPTIONAL_DEF_OPERAND, then it's a def.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38496
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 10 Jul 2007 17:50:43 +0000 (17:50 +0000)]
Somehow this wasn't committed last time. M_CLOBBERS_PRED is gone.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38495
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 10 Jul 2007 17:25:03 +0000 (17:25 +0000)]
Fix the build, and fix the handling of pointer sizes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38494
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 10 Jul 2007 17:08:11 +0000 (17:08 +0000)]
Fix a bunch of things from Chris' feedback
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38493
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 10 Jul 2007 15:34:29 +0000 (15:34 +0000)]
Add a regression test for folding spill code into scalar min and max.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38492
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 10 Jul 2007 15:19:29 +0000 (15:19 +0000)]
Fix a bug in the folding of binary operators to undef.
Thanks to Lauro for spotting this!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38491
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Tue, 10 Jul 2007 14:52:01 +0000 (14:52 +0000)]
Make sure to keep symbols for profile build.
Patch by Benoit Boissinot. Thanks, Benoit!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38490
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 10 Jul 2007 14:20:37 +0000 (14:20 +0000)]
Fix the folding of undef in several binary operators to recognize
undef in either the left or right operand.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38489
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Tue, 10 Jul 2007 07:48:09 +0000 (07:48 +0000)]
Simplify the handling of the --*flags options. The makefile already gets it
right so there is no need to duplicate logic, just use the values the makefile
provides.
Eliminate some redundnt -D options from the output.
Fix the help output so it fits on 80 cols.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38488
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Tue, 10 Jul 2007 07:21:34 +0000 (07:21 +0000)]
Makesure the -cppflags also uses the CPP.BaseFlags as the CPP.Defines only
contains some of the defines but not all CPP flags.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38487
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Tue, 10 Jul 2007 07:19:53 +0000 (07:19 +0000)]
Make sure that preprocessor symbols like _DEBUG, NDEBUG, and _GLIBC_DEBUG are
put into the CPP.Defines variable. Seems the convention was corrupted with
various changes made. It is important to get command line parameters into the
right variable because things like llvm-config and sub-makefiles depend on it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38486
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 10 Jul 2007 07:08:32 +0000 (07:08 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38485
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 10 Jul 2007 06:59:55 +0000 (06:59 +0000)]
Move DenseMapKeyInfo<SDOperand> from LegalizeDAG.cpp to SelectionDAGNodes.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38484
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Tue, 10 Jul 2007 03:28:21 +0000 (03:28 +0000)]
Update the ValueRanges interface to use value numbers instead of Value*s.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38483
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 10 Jul 2007 02:01:16 +0000 (02:01 +0000)]
Evidently my earlier fix did not go far enough. When resizing a zero-sized
BitVector, make sure to set or clear ALL of the bits.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38481
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 10 Jul 2007 00:27:22 +0000 (00:27 +0000)]
Move some key maps from std::map to DenseMap. This improves the time to optimize Anton's testcase from 17.5s
to 15.7s.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38480
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 10 Jul 2007 00:09:25 +0000 (00:09 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38479
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 10 Jul 2007 00:05:58 +0000 (00:05 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38478
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Mon, 9 Jul 2007 23:57:18 +0000 (23:57 +0000)]
Add an assertion if find_leader fails.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38477
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Mon, 9 Jul 2007 23:39:39 +0000 (23:39 +0000)]
When resizing a BitVector with size 0, be sure to clear the low word before using it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38476
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Mon, 9 Jul 2007 22:29:50 +0000 (22:29 +0000)]
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!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38475
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Mon, 9 Jul 2007 22:27:20 +0000 (22:27 +0000)]
Make the assignment operator for SmallPtrSet much faster for normal cases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38474
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 9 Jul 2007 22:18:38 +0000 (22:18 +0000)]
Preserve volatililty and alignment information when lowering or
simplifying loads and stores.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38473
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 9 Jul 2007 21:19:23 +0000 (21:19 +0000)]
Expose struct size threhold to allow users to tweak their own setting.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38472
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 9 Jul 2007 20:59:04 +0000 (20:59 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38471
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Mon, 9 Jul 2007 20:59:01 +0000 (20:59 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38470
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 9 Jul 2007 20:52:39 +0000 (20:52 +0000)]
Fix memory leak.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38469
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 9 Jul 2007 20:49:44 +0000 (20:49 +0000)]
Initialize the IndexedModeActions array with memset before
updating it with calls to setIndexedLoadAction/setIndexedStoreAction,
which only update a few bits at a time. This avoids ostensible
undefined behavior of operationg on values which may be
trap-representations, and as a practical matter fixes errors from
valgrind, which doesn't track uninitialized memory with bit
granularity.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38468
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Mon, 9 Jul 2007 18:51:15 +0000 (18:51 +0000)]
Fix an error in the assignment operator that was causing an infinite loop in GVNPRE.cpp.
Patch by Chis Lattner.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38467
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 9 Jul 2007 17:35:18 +0000 (17:35 +0000)]
force a cpu without SSE
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38466
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 9 Jul 2007 17:32:28 +0000 (17:32 +0000)]
allow this to work on ppc-darwin
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38465
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 9 Jul 2007 17:31:07 +0000 (17:31 +0000)]
remove this bogus t-t
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38464
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 9 Jul 2007 17:25:29 +0000 (17:25 +0000)]
The various "getModuleMatchQuality" implementations should return
zero if they see a target triple they don't understand.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38463
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 9 Jul 2007 17:14:58 +0000 (17:14 +0000)]
add target triple to fix PR1546
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38462
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 9 Jul 2007 17:11:53 +0000 (17:11 +0000)]
work around an aparent gcc name resolution bug by
detemplatizing this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38461
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 9 Jul 2007 16:54:03 +0000 (16:54 +0000)]
implement operator= for smallptrset
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38460
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Mon, 9 Jul 2007 16:43:55 +0000 (16:43 +0000)]
Fix a comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38459
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 9 Jul 2007 16:16:34 +0000 (16:16 +0000)]
Fix this warning:
DAGCombiner.cpp: In member function 'llvm::SDOperand<unnamed>::DAGCombiner::visitOR(llvm::SDNode*)':
DAGCombiner.cpp:1608: warning: passing negative value '-0x00000000000000001' for argument 1 to 'llvm::SDOperand llvm::SelectionDAG::getConstant(uint64_t, llvm::MVT::ValueType, bool)'
oiy.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38458
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 9 Jul 2007 15:25:17 +0000 (15:25 +0000)]
Move the APInt form of SCEVUnknown::getIntegerSCEV to SCEVConstant::get, and
use SCEVConstant::get instead of SCEVUnknown::get when constructing a SCEV
for a ConstantInt.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38457
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 9 Jul 2007 15:15:24 +0000 (15:15 +0000)]
Fix a typo in a comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38456
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 9 Jul 2007 13:42:32 +0000 (13:42 +0000)]
Add explicit triples to these tests so that llc behaves as expected on
non-Apple hosts.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38455
91177308-0d34-0410-b5e6-
96231b3b80d8