Eli Friedman
369401ef95
Fix for PR2479: correctly optimize expressions like (a > 13) & (a ==
...
15).
See also PR1800, which is about the signed case.
llvm-svn: 52608
2008-06-21 23:36:13 +00:00
Dan Gohman
91a43b082c
Use Instruction::eraseFromParent().
...
llvm-svn: 52606
2008-06-21 22:08:46 +00:00
Dan Gohman
e0744f181b
Use Function's arg_size() and size() methods.
...
llvm-svn: 52605
2008-06-21 22:06:54 +00:00
Dan Gohman
a41cf16a8f
Simplify some getNode calls.
...
llvm-svn: 52604
2008-06-21 22:06:07 +00:00
Dan Gohman
4d2c1733d7
canClobberPhysRegDefs shouldn't called without checking hasPhysRegDefs;
...
check this with an assert.
llvm-svn: 52603
2008-06-21 22:05:24 +00:00
Dan Gohman
e6da01721b
Avoid creating a redundant zero APInt.
...
llvm-svn: 52602
2008-06-21 22:03:12 +00:00
Dan Gohman
a313808e69
Use clear() to zero an existing APInt.
...
llvm-svn: 52601
2008-06-21 22:02:15 +00:00
Dan Gohman
7460588026
Use back() instead of [size()-1].
...
llvm-svn: 52600
2008-06-21 22:00:54 +00:00
Duncan Sands
dd3b6236c8
This file is empty.
...
llvm-svn: 52596
2008-06-21 20:26:50 +00:00
Duncan Sands
1d9305bfb8
Turn off llvm-gcc warnings when running "make check".
...
llvm-svn: 52595
2008-06-21 20:22:58 +00:00
Dan Gohman
bed65a69c3
Use MachineBasicBlock::transferSuccessors.
...
llvm-svn: 52594
2008-06-21 20:21:19 +00:00
Dan Gohman
9b9cf4cf9c
Use static_cast instead of reinterpret_cast for casting void*.
...
llvm-svn: 52592
2008-06-21 20:17:03 +00:00
Chris Lattner
5b0bc729b3
Fix warning when assertions disabled.
...
llvm-svn: 52590
2008-06-21 19:49:01 +00:00
Chris Lattner
76d8bbc7c2
fix warning when assertions disabled.
...
llvm-svn: 52589
2008-06-21 19:48:22 +00:00
Chris Lattner
d3308e835f
fix warning when assertion disabled.
...
llvm-svn: 52588
2008-06-21 19:47:44 +00:00
Chris Lattner
96b3955e9b
fix some warnings when assertions are disabled.
...
llvm-svn: 52587
2008-06-21 19:47:03 +00:00
Dan Gohman
1e71795b8d
Remove a redundant return.
...
llvm-svn: 52585
2008-06-21 19:34:57 +00:00
Dan Gohman
3ae70927cf
Reorder some fields in SDNode. This avoids padding,
...
reducings its size from 80 to 72 on 64-bit hosts.
llvm-svn: 52584
2008-06-21 19:26:15 +00:00
Dan Gohman
015a5ca374
Remove ScheduleDAG's SUnitMap altogether. Instead, use SDNode's NodeId
...
field, which is otherwise unused after instruction selection, as an index
into the SUnit array.
llvm-svn: 52583
2008-06-21 19:18:17 +00:00
Dan Gohman
4099d0bf27
Add a priority queue class, which is a wrapper around std::priority_queue
...
and provides fairly efficient removal of arbitrary elements. Switch
ScheduleDAGRRList from std::set to this new priority queue.
llvm-svn: 52582
2008-06-21 18:35:25 +00:00
Duncan Sands
1dd6ef8f8e
Support for load/store of expanded float types. I
...
don't know if a truncating store is possible here,
but added support for it anyway.
llvm-svn: 52577
2008-06-21 17:00:47 +00:00
Dan Gohman
3a5a96e045
Change ScheduleDAG's SUnitMap from DenseMap<SDNode*, vector<SUnit*> >
...
to DenseMap<SDNode*, SUnit*>, and adjust the way cloned SUnit nodes are
handled so that only the original node needs to be in the map.
This speeds up llc on 447.dealII.llvm.bc by about 2%.
llvm-svn: 52576
2008-06-21 15:52:51 +00:00
Evan Cheng
2ff47edc37
Enable PRE.
...
llvm-svn: 52574
2008-06-21 07:26:53 +00:00
Evan Cheng
1d07cd32c2
Undo spill weight tweak. Need to investigate the performance regressions.
...
llvm-svn: 52572
2008-06-21 06:45:54 +00:00
Dan Gohman
62fb667283
Simplify some template parameterization.
...
llvm-svn: 52571
2008-06-21 01:08:22 +00:00
Evan Cheng
b65bceda9c
Back out Matthijs' DAE patches. It's miscompiling gcc driver.
...
llvm-svn: 52570
2008-06-21 00:31:44 +00:00
Ted Kremenek
5a3b26f49c
Updated VS build system. Patch provided by Cedric Venet:
...
http://lists.cs.uiuc.edu/pipermail/llvmdev/2008-June/015446.html
llvm-svn: 52564
2008-06-20 22:19:12 +00:00
Evan Cheng
c1f551b43e
Enhanced heuristic to determine the *best* register to spill. Instead of picking the register with the lowest spill weight. Consider (up to) 2 additional registers with spill weights that are close to the lowest spill weight. The one with fewest defs and uses that conflicts with the current interval (weighted by loop depth) is the spill candidate.
...
This is not always a win, but there are much more wins than loses and wins tend to be more noticeable.
llvm-svn: 52554
2008-06-20 21:45:16 +00:00
Chris Lattner
d1c3cc07ce
integer types are not primitive, they are derived.
...
llvm-svn: 52551
2008-06-20 20:50:48 +00:00
Owen Anderson
58474135b7
llvmc doesn't exist anymore, and llvmc2 doesn't have a special license file.
...
llvm-svn: 52550
2008-06-20 20:05:57 +00:00
Duncan Sands
59b9db1fb6
Share some code that is common between integer and
...
float expansion (and sometimes vector splitting too).
llvm-svn: 52548
2008-06-20 18:40:50 +00:00
Duncan Sands
57f1b4e23c
Add some methods for querying the nature of a
...
store, like the methods for loads (and neaten
those up a bit while there).
llvm-svn: 52547
2008-06-20 18:34:30 +00:00
Duncan Sands
bccd4c58ba
Rename the operation of turning a float type into an
...
integer of the same type. Before it was "promotion",
but this is confusing because it is quite different
to promotion of integers. Call it "softening" instead,
inspired by "soft float".
llvm-svn: 52546
2008-06-20 17:49:55 +00:00
Dan Gohman
10e3188458
Clean up some uses of std::distance, now that we have allnodes_size.
...
llvm-svn: 52545
2008-06-20 17:15:19 +00:00
Dan Gohman
6a75f18b3b
Clean up a use of std::distance.
...
llvm-svn: 52544
2008-06-20 17:11:32 +00:00
Dan Gohman
fcc6f11fc3
Tidy up some commments and use the getAggregateOperand and
...
getInsertedValueOperand accessors. Thanks Matthijs!
llvm-svn: 52543
2008-06-20 16:41:17 +00:00
Dan Gohman
3968f90c4c
Fix the conditions under which SCCP should examine insertvalue
...
instructions. Thanks to Matthijs Kooijman for pointing this out!
llvm-svn: 52542
2008-06-20 16:39:44 +00:00
Dan Gohman
f62b13bc3d
Add an allnodes_size method.
...
llvm-svn: 52541
2008-06-20 16:03:16 +00:00
Matthijs Kooijman
564fe9092f
Add testcase that checks that DeadArgElim doesn't touch stuff it shouldn't touch.
...
llvm-svn: 52540
2008-06-20 15:38:22 +00:00
Matthijs Kooijman
54efc9f60e
80 column and trailing whitespace fixes.
...
llvm-svn: 52539
2008-06-20 15:34:07 +00:00
Matthijs Kooijman
7a75a306ff
Don't let DeadArgumentElimination attempt to update callers when the return
...
type wasn't changed.
llvm-svn: 52538
2008-06-20 15:25:43 +00:00
Matthijs Kooijman
9a9a6f1122
Don't let DeadArgElimination change the return type ({} into void and {T}
...
into T) when no return values are actually dead.
llvm-svn: 52537
2008-06-20 15:16:45 +00:00
Matthijs Kooijman
1d019c28b3
Explicitely track if any arguments or return values were removed in
...
DeadArgumentElimination and assert that the function type does not change if
nothing was changed. This should catch subtle changes in function type that are
not intended.
llvm-svn: 52536
2008-06-20 14:28:52 +00:00
Matthijs Kooijman
35ac78c162
Remove debug output.
...
llvm-svn: 52535
2008-06-20 14:03:35 +00:00
Matthijs Kooijman
a3222e3730
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
5213d215e0
Really disable PRE.
...
llvm-svn: 52531
2008-06-20 08:59:13 +00:00
Chris Lattner
6d4c9bd816
"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
0177b31bde
Fix a warning, closing PR2452
...
llvm-svn: 52529
2008-06-20 05:33:29 +00:00
Chris Lattner
873cf9817f
Fix a warning.
...
llvm-svn: 52528
2008-06-20 05:31:04 +00:00
Chris Lattner
9ab7735924
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