Ted Kremenek
13cad039f8
Update release notes blurb on the static analyzer.
...
llvm-svn: 83749
2009-10-11 03:10:25 +00:00
Chris Lattner
8b521613d3
rewrite LCSSA to use SSAUpdate, to only return true if it modifies
...
the IR, and to implement the FIXME'd optimization.
llvm-svn: 83748
2009-10-11 02:53:37 +00:00
Chris Lattner
1b8c1d1d29
clean up and simplify some code. Don't use setvector when things will be
...
inserted only once, just use vector. Don't compute ExitBlocks unless we
need it, change std::sort to array_pod_sort.
llvm-svn: 83747
2009-10-11 01:07:15 +00:00
Chris Lattner
37ff3c0ed1
switch GVN to use SSAUpdater. Besides removing a lot of complexity
...
from GVN, this also speeds it up, inserts fewer PHI nodes (see the
testcase) and allows it to remove more loads (due to fewer PHI nodes
standing in the way).
llvm-svn: 83746
2009-10-10 23:50:30 +00:00
Chris Lattner
0aa320ae4d
add a simple helper method.
...
llvm-svn: 83745
2009-10-10 23:41:48 +00:00
Chris Lattner
acf73d9839
add ability for clients of SSAUpdater to find out about the
...
PHI nodes inserted.
llvm-svn: 83744
2009-10-10 23:15:24 +00:00
Chris Lattner
10b6af716f
clarify
...
llvm-svn: 83743
2009-10-10 23:05:42 +00:00
Chris Lattner
31d3137c01
remove dead code
...
llvm-svn: 83742
2009-10-10 23:04:12 +00:00
Chris Lattner
db4d523cca
add the ability to get a rewritten value from the middle of a block,
...
not just at the end. Add a big comment explaining when this could
be useful (which never happens for jump threading).
llvm-svn: 83741
2009-10-10 23:00:11 +00:00
Chris Lattner
9899ce267c
rename GetValueInBlock -> GetValueAtEndOfBlock to better reflect
...
what it does.
llvm-svn: 83740
2009-10-10 22:41:58 +00:00
Anton Korobeynikov
1f9ff55cbc
It seems that OR operation does not affect status reg at all.
...
Remove impdef of SRW. This fixes PR4779
llvm-svn: 83739
2009-10-10 22:17:47 +00:00
Chris Lattner
ce616c28ef
fix broken link
...
llvm-svn: 83738
2009-10-10 22:15:25 +00:00
Chris Lattner
330bc88468
final changes.
...
llvm-svn: 83737
2009-10-10 22:13:38 +00:00
Chris Lattner
e584af1294
down to 'major changes'
...
llvm-svn: 83736
2009-10-10 22:02:58 +00:00
Chris Lattner
e747b10bc3
more updates
...
llvm-svn: 83735
2009-10-10 21:40:13 +00:00
Chris Lattner
513fd3ac2b
add a link to the GSG for info on how to check out svn trunk
...
llvm-svn: 83734
2009-10-10 21:37:16 +00:00
Chris Lattner
a9d2468440
x86 uses 5 operands for most memory refs now.
...
llvm-svn: 83733
2009-10-10 21:30:55 +00:00
Duncan Sands
9a6f3eb8ae
More spelling and grammar tweaks.
...
llvm-svn: 83728
2009-10-10 20:06:04 +00:00
Benjamin Kramer
453e8ae2be
More spelling fixes.
...
llvm-svn: 83724
2009-10-10 19:45:13 +00:00
Duncan Sands
4e12fa3691
Spelling fixes.
...
llvm-svn: 83722
2009-10-10 19:30:16 +00:00
Chris Lattner
074b4dee13
more tweaks
...
llvm-svn: 83721
2009-10-10 19:26:21 +00:00
Duncan Sands
bf2f32c08b
Remove an inappropriate line in the description of the
...
clang static analyser. Decrease duplication in the text.
llvm-svn: 83720
2009-10-10 19:16:25 +00:00
Chris Lattner
8f7bd86796
continue decoding chris scribble.
...
llvm-svn: 83719
2009-10-10 19:00:55 +00:00
Chris Lattner
3c9d2553e9
remove some dead passes
...
llvm-svn: 83717
2009-10-10 18:40:48 +00:00
Chris Lattner
42f4178529
checkpoint.
...
llvm-svn: 83716
2009-10-10 18:33:13 +00:00
Chris Lattner
1f970dea03
fix broken anchors.
...
llvm-svn: 83715
2009-10-10 18:26:06 +00:00
Chris Lattner
0561804097
use a typedef instead of spelling out an insane type. Yay for auto someday.
...
llvm-svn: 83707
2009-10-10 09:09:20 +00:00
Chris Lattner
75e5de9243
Change jump threading to use the new SSAUpdater class instead of
...
DemoteRegToStack. This makes it more efficient (because it isn't
creating a ton of load/stores that are eventually removed by a later
mem2reg), and more slightly more effective (because those load/stores
don't get in the way of threading).
llvm-svn: 83706
2009-10-10 09:05:58 +00:00
Chris Lattner
9c5aa00411
Implement an efficient and fully general SSA update mechanism that
...
works on unstructured CFGs. This implements PR217, our oldest open PR.
llvm-svn: 83705
2009-10-10 09:04:27 +00:00
Chris Lattner
54621efc37
add some WeakVH::operator='s. Without these, assigning
...
a Value* to a WeakVH was constructing a temporary WeakVH
(due to the implicit assignment operator). This avoids
that cost.
llvm-svn: 83704
2009-10-10 08:27:29 +00:00
Chris Lattner
70895041a7
change some static_cast into cast, pointed out by Gabor.
...
llvm-svn: 83703
2009-10-10 08:01:27 +00:00
Chris Lattner
76985b43e3
add a version of PHINode::getIncomingBlock that takes a raw
...
Use, to complement the version that takes a use_iterator.
llvm-svn: 83702
2009-10-10 07:42:42 +00:00
Chris Lattner
317eb8ff20
random tidying
...
llvm-svn: 83701
2009-10-10 06:22:45 +00:00
Dan Gohman
605f85e0e6
Create a new InstrEmitter class for translating SelectionDAG nodes
...
into MachineInstrs. This is mostly just moving the code from
ScheduleDAGSDNodesEmit.cpp into a new class. This decouples MachineInstr
emitting from scheduling.
llvm-svn: 83699
2009-10-10 01:32:21 +00:00
Dan Gohman
3b025b778b
Make getMachineNode return a MachineSDNode* instead of a generic SDNode*
...
since it won't do any folding. This will help avoid some inconvenient
casting.
llvm-svn: 83698
2009-10-10 01:29:16 +00:00
Dan Gohman
84a61978de
Remove a no-longer-necessary #include.
...
llvm-svn: 83697
2009-10-10 00:36:09 +00:00
Dan Gohman
177b8de981
Replace X86's CanRematLoadWithDispOperand by calling the target-independent
...
MachineInstr::isInvariantLoad instead, which has the benefit of being
more complete.
llvm-svn: 83696
2009-10-10 00:34:18 +00:00
Dan Gohman
b98d95f4f9
Fix a missing initialization of PostRAScheduler's AA member.
...
llvm-svn: 83695
2009-10-10 00:15:38 +00:00
Dan Gohman
5141b26ffa
The ScheduleDAG framework now requires an AliasAnalysis argument, though
...
it isn't needed in the ScheduleDAGSDNodes schedulers.
llvm-svn: 83691
2009-10-09 23:33:48 +00:00
Dan Gohman
b535009219
Update this test; the code is the same but it gets counted as one
...
fewer remat.
llvm-svn: 83690
2009-10-09 23:31:04 +00:00
Dan Gohman
168ae2c7d5
Mark the LDR instruction with isReMaterializable, as it is rematerializable
...
when loading from an invariant memory location.
llvm-svn: 83688
2009-10-09 23:28:27 +00:00
Dan Gohman
5bfc2416fe
Factor out LiveIntervalAnalysis' code to determine whether an instruction
...
is trivially rematerializable and integrate it into
TargetInstrInfo::isTriviallyReMaterializable. This way, all places that
need to know whether an instruction is rematerializable will get the
same answer.
This enables the useful parts of the aggressive-remat option by
default -- using AliasAnalysis to determine whether a memory location
is invariant, and removes the questionable parts -- rematting operations
with virtual register inputs that may not be live everywhere.
llvm-svn: 83687
2009-10-09 23:27:56 +00:00
Devang Patel
c97c44b584
Extract scope information from the variable itself, instead of relying on alloca or llvm.dbg.declare location.
...
While recording beginning of a function, use scope info from the first location entry instead of just relying on first location entry itself.
llvm-svn: 83684
2009-10-09 22:42:28 +00:00
Jeffrey Yasskin
7edab17bef
ExecutionEngine::clearGlobalMappingsFromModule failed to remove reverse
...
mappings, which could cause errors and assert-failures. This patch fixes that,
adds a test, and refactors the global-mapping-removal code into a single place.
llvm-svn: 83678
2009-10-09 22:10:27 +00:00
Dan Gohman
14aaff93fc
Add a const qualifier.
...
llvm-svn: 83677
2009-10-09 22:09:05 +00:00
Dale Johannesen
7691b73da0
Use names instead of numbers for some of the magic
...
constants used in inlining heuristics (especially
those used in more than one file). No functional change.
llvm-svn: 83675
2009-10-09 21:42:02 +00:00
Kevin Enderby
430e05312d
Added another bit of the ARM target assembler to llvm-mc to parse register
...
lists. Changed ARMAsmParser::MatchRegisterName to return -1 instead of 0 on
errors so 0-15 values could be returned as register numbers. Also added the
rest of the arm register names to the currently hacked up version to allow more
testing. Some changes to ARMAsmParser::ParseOperand to give different errors
for things not yet supported and some additions to the hacked
ARMAsmParser::MatchInstruction to allow more testing for now.
llvm-svn: 83673
2009-10-09 21:12:28 +00:00
Dan Gohman
3005d6bf9f
isTriviallyReMaterializable checks the
...
TargetInstrDesc::isRematerializable flag, so it isn't necessary to do
this check in its callers.
llvm-svn: 83671
2009-10-09 21:02:10 +00:00
Dan Gohman
f2ae9c6220
Fix the x86 test-shrink optimization so that it doesn't shrink comparisons
...
when one of the bits being tested would end up being the sign bit in the
narrower type, and a signed comparison is being performed, since this would
change the result of the signed comparison. This fixes PR5132.
llvm-svn: 83670
2009-10-09 20:35:19 +00:00
Bob Wilson
011e458c11
Merge a bunch of NEON tests into larger files so they run faster.
...
llvm-svn: 83667
2009-10-09 20:20:54 +00:00