Commit Graph

44806 Commits

Author SHA1 Message Date
Matthijs Kooijman e91aed6ce1 Remove debug output.
llvm-svn: 52535
2008-06-20 14:03:35 +00:00
Matthijs Kooijman 8d32dee428 Recommit r52459, rewriting of the dead argument elimination pass.
This is a fixed version that no longer uses multimap::equal_range, which
resulted in a pointer invalidation problem.

Also, DAE::InspectedFunctions was not really necessary, so it got removed.

Lastly, this version no longer applies the extra arg hack on functions who did
not have any arguments to start with.

llvm-svn: 52532
2008-06-20 09:36:16 +00:00
Owen Anderson 78fbcafb53 Really disable PRE.
llvm-svn: 52531
2008-06-20 08:59:13 +00:00
Chris Lattner 2616a7e0f7 "Just a small update for the project files for adding a missing preprocessor
definition for VS2005 (without SP1). It suppress the (bogus) M$ deprecated
warning."

Patch by Cédric Venet!

llvm-svn: 52530
2008-06-20 05:35:58 +00:00
Chris Lattner 54d26c6b12 Fix a warning, closing PR2452
llvm-svn: 52529
2008-06-20 05:33:29 +00:00
Chris Lattner 65ee4e3a5c Fix a warning.
llvm-svn: 52528
2008-06-20 05:31:04 +00:00
Chris Lattner d53bd2da98 Fix an error handling redefinition of linkonce functions where the
types differ.  Patch by Nathan Keynes!

llvm-svn: 52527
2008-06-20 05:29:39 +00:00
Chris Lattner ba00c761b7 fix a warning.
llvm-svn: 52526
2008-06-20 05:28:56 +00:00
Chris Lattner f3ecd2d290 Fix PR2471, which is a bug involving an invalid promotion from a conditional load.
llvm-svn: 52525
2008-06-20 05:12:56 +00:00
Chris Lattner 643b00a3e6 Fix typo, fix suggested by Nicholas Olsen
llvm-svn: 52524
2008-06-20 05:03:17 +00:00
Gordon Henriksen 9f337549a7 Add C binding for ExecutionEngine::addGlobalMapping.
llvm-svn: 52523
2008-06-20 02:16:11 +00:00
Dan Gohman 593a010c56 Teach ReturnInst lowering about aggregate return values.
llvm-svn: 52522
2008-06-20 01:29:26 +00:00
Owen Anderson 1b3ea963f7 Change around the data structures used to store availability sets, resulting in a GVN+PRE that is faster that GVN alone was before.
llvm-svn: 52521
2008-06-20 01:15:47 +00:00
Dan Gohman 041f9d03ff Teach SCCP about insertvalue and extractvalue, and about
propagating constants across aggregate return values when
insertvalue and extractvalue are used.

llvm-svn: 52520
2008-06-20 01:15:44 +00:00
Dan Gohman 3b18fd7b02 Teach InlineFunction how to differentiate between multiple-value
return statements and aggregate returns so that it handles both
correctly.

llvm-svn: 52519
2008-06-20 01:03:44 +00:00
Evan Cheng 9598f930f3 Disable PRE for now. It seems to be breaking llvm-gcc bootstrapping.
llvm-svn: 52518
2008-06-20 01:01:07 +00:00
Dan Gohman 44b2c57e2b Fix the index calculations for the extractvalue lowering code.
llvm-svn: 52517
2008-06-20 00:54:19 +00:00
Dan Gohman c7a32fc8ca Simplify the ComputeLinearIndex logic and fix a few bugs.
llvm-svn: 52516
2008-06-20 00:53:00 +00:00
Dan Gohman e8512ffba6 It's invalid to take the one-past-the-end address of a non-array
object.

llvm-svn: 52515
2008-06-20 00:49:21 +00:00
Dan Gohman d87e813e41 Simplify this code. Thanks Chris!
llvm-svn: 52514
2008-06-20 00:47:44 +00:00
Ted Kremenek e562289a0f Updated latest static analysis build.
llvm-svn: 52512
2008-06-19 23:20:00 +00:00
Ted Kremenek 940a738e77 Add DTD information.
llvm-svn: 52511
2008-06-19 23:14:24 +00:00
Evan Cheng be0429c558 ISD::UNDEF should be expanded recursively / iteratively.
llvm-svn: 52508
2008-06-19 22:01:11 +00:00
Mike Stump d7667bd8e0 Remove tabs.
llvm-svn: 52507
2008-06-19 20:57:50 +00:00
Owen Anderson e780d66657 Add a hidden -disable-pre flag for testing purposes. This should be removed
once benchmarking is completed.

llvm-svn: 52506
2008-06-19 19:57:25 +00:00
Owen Anderson fdf9f168b5 PRE requires that critical edges be split.
llvm-svn: 52505
2008-06-19 19:54:19 +00:00
Mike Stump 65643c6480 One more test checkin.
Remove an extra space at the end of a line.

llvm-svn: 52504
2008-06-19 19:52:46 +00:00
Mike Stump 01e07653d4 Test commit to see if new account works.
I choose to remove extraneous whitespace at end of lines as a semantic
nop for the test.

llvm-svn: 52503
2008-06-19 19:28:49 +00:00
Bill Wendling cd6fb1d0a8 Remove dead code causing a warning.
llvm-svn: 52502
2008-06-19 18:00:44 +00:00
Ted Kremenek 46c82ab994 Introduce initial transfer function support for __imag__ and __real__. We don't
have complex RValues yet, so this logic is only fully implemented when __imag__
and __real__ are used on non-complex types.

llvm-svn: 52501
2008-06-19 17:55:38 +00:00
Dan Gohman d6530872f3 Use the common API for adding instructions to basic blocks instead of
using BasicBlock::getInstList.

llvm-svn: 52500
2008-06-19 17:53:32 +00:00
Owen Anderson ff21db851d Be sure to remove values from the value numbering table after we delete them.
This fixes a failure on povray.

llvm-svn: 52499
2008-06-19 17:53:26 +00:00
Dan Gohman ed2250990a Use Instruction::moveBefore instead of manipulating the instruction list
directly.

llvm-svn: 52498
2008-06-19 17:47:47 +00:00
Dan Gohman 9eea470fcf Avoid using BasicBlock::getInstList directly in a few places.
llvm-svn: 52497
2008-06-19 17:37:25 +00:00
Owen Anderson 45d3701fce Revert support for insertvalue and extractvalue instructions for the moment.
GVN expects that all inputs which to an instruction fall somewhere in the value
hierarchy, which isn't true for these.

llvm-svn: 52496
2008-06-19 17:25:39 +00:00
Dan Gohman 6f880690b8 Use the transferSuccessors helper function.
llvm-svn: 52495
2008-06-19 17:22:29 +00:00
Dan Gohman 68f539e807 Delete dead code.
llvm-svn: 52494
2008-06-19 17:18:39 +00:00
Owen Anderson eb31adeba4 Add an idx_iterator to the insertvalue and extractvalue instructions.
llvm-svn: 52493
2008-06-19 17:15:57 +00:00
Dan Gohman 386c2f616f The inline keyword goes before the return type. This fixes a compiler warning.
llvm-svn: 52492
2008-06-19 16:16:06 +00:00
Matthijs Kooijman a087b73dba Modify some ipconstprop tests to also test with invokes.
llvm-svn: 52491
2008-06-19 09:27:44 +00:00
Matthijs Kooijman 0c71732497 Use a CallSite to find the nth argument of a call/invoke instruction instead of
using getOperand() directly. This makes things work with invoke instructions as
well.

llvm-svn: 52489
2008-06-19 08:53:24 +00:00
Duncan Sands db356eea26 Fix some warnings reported by gcc-4.3. Hopefully
this still compiles on windows - I can't test!

llvm-svn: 52488
2008-06-19 08:47:31 +00:00
Evan Cheng 849fa11f15 Missed a check.
llvm-svn: 52487
2008-06-19 06:17:19 +00:00
Eli Friedman 8d66e98c92 Fix a bug with <8 x i16> shuffle lowering on X86 where parts of the
shuffle could be skipped.  The check is invalid because the loop index i 
doesn't correspond to the element actually inserted. The correct check is
already done a few lines earlier, for whether the element is already in 
the right spot, so this shouldn't have any effect on the codegen for 
code that was already correct.

llvm-svn: 52486
2008-06-19 06:09:51 +00:00
Owen Anderson 3c4ccc830e Revert my last patch, which was causing regression test failures.
llvm-svn: 52485
2008-06-19 05:29:34 +00:00
Evan Cheng b139ee95b4 New test case.
llvm-svn: 52483
2008-06-19 01:50:24 +00:00
Evan Cheng d6d9cfa72a This also got better (55 - 51 instructions). But doing one more re-materialization.
llvm-svn: 52482
2008-06-19 01:50:13 +00:00
Evan Cheng 1d1907d778 This got better.
llvm-svn: 52481
2008-06-19 01:46:43 +00:00
Evan Cheng 0c8ef553f5 Coalesce copy from one register class to a sub register class. e.g. X86::MOV16to16_.
llvm-svn: 52480
2008-06-19 01:39:21 +00:00
Evan Cheng 18e46d455b Cosmetic changes.
llvm-svn: 52479
2008-06-19 01:21:26 +00:00