Owen Anderson
b258a71a37
No need to use std::distance. We can just count the number of operands
...
much more cheaply.
llvm-svn: 52990
2008-07-01 22:34:11 +00:00
Ted Kremenek
0b662363f9
Added partial specialization of FoldingSetTrait for pointers.
...
llvm-svn: 52989
2008-07-01 22:30:13 +00:00
Evan Cheng
508e82fcfc
Simplify addRegisterKilled and addRegisterDead.
...
llvm-svn: 52988
2008-07-01 22:21:21 +00:00
Bill Wendling
c695823456
- Update comments.
...
- Don't use GlobalVariable::LinkageTypes when unsigned works.
llvm-svn: 52987
2008-07-01 22:08:01 +00:00
Dale Johannesen
51edab312c
Considering predecessors of exit blocks gets
...
us a little more tail merging.
llvm-svn: 52986
2008-07-01 21:50:49 +00:00
Dale Johannesen
d7ea0ac4fd
Fix longstanding thinko: don't exclude
...
predessors of exit blocks from tail merging
consideration.
llvm-svn: 52985
2008-07-01 21:50:14 +00:00
Devang Patel
51aec7ffb8
Fix dom tree compare. Don't forget to compare children!
...
llvm-svn: 52984
2008-07-01 21:41:00 +00:00
Devang Patel
a4a94290b8
Disable dom info verifier by default.
...
llvm-svn: 52983
2008-07-01 21:36:11 +00:00
Evan Cheng
8a30a09180
Eliminate a compile time warning.
...
llvm-svn: 52982
2008-07-01 21:35:46 +00:00
Owen Anderson
8564cd9dfe
Add a version of AsmPrinter::EOL that takes a const char* so that we don't have to do as many implicit std::string constructions.
...
Unfortunately, this doesn't appear to translate to a real speedup in practice.
llvm-svn: 52981
2008-07-01 21:16:27 +00:00
Bill Wendling
d7ccfdb867
Remove warning about initialization order.
...
llvm-svn: 52980
2008-07-01 21:00:31 +00:00
Devang Patel
0fc2badc38
Fix typos in comments.
...
Thanks for the feedback!
llvm-svn: 52978
2008-07-01 19:50:56 +00:00
Evan Cheng
915253ddda
DAGSize should not be public.
...
llvm-svn: 52977
2008-07-01 18:49:06 +00:00
Dan Gohman
83c1b4cede
Prune a few dependencies on MachineFunction.h.
...
llvm-svn: 52976
2008-07-01 18:15:35 +00:00
Evan Cheng
9a960dc2b2
Do run ComputeLiveOutVRegInfo with -fast.
...
llvm-svn: 52975
2008-07-01 18:15:04 +00:00
Dan Gohman
ca864de95a
Make ilist_traits<MachineBasicBlock>'s Parent member private.
...
llvm-svn: 52974
2008-07-01 18:13:58 +00:00
Dan Gohman
9d5c1f8b60
Fix apostrophes in a comment.
...
llvm-svn: 52972
2008-07-01 18:12:31 +00:00
Evan Cheng
67ce381ffe
Do not use computationally expensive scheduling heuristics with -fast.
...
llvm-svn: 52971
2008-07-01 18:05:03 +00:00
Evan Cheng
b33d6b69ab
Apply Chris' suggestion.
...
llvm-svn: 52970
2008-07-01 17:59:20 +00:00
Devang Patel
1e1f4a0bdd
Add dom info verifier.
...
llvm-svn: 52967
2008-07-01 17:44:24 +00:00
Owen Anderson
fe73cb09c8
Make the subregister hashtable output more readable by wrapping the lines,
...
and mark it const along with the associated changes to TargetRegisterInfo.
llvm-svn: 52966
2008-07-01 17:34:38 +00:00
Owen Anderson
b11f2e0fb1
Use delete[] instead of free on an array created with new[].
...
llvm-svn: 52960
2008-07-01 15:56:31 +00:00
Duncan Sands
d8d11501c9
Highlight that getMergeValues optimization is
...
being suppressed here.
llvm-svn: 52952
2008-07-01 08:00:49 +00:00
Owen Anderson
9e88ac84bf
Implement suggestions from Chris:
...
- Use a more accurate heuristic for the size of the hashtable.
- Use bitwise and instead of modulo since the size is a power of two.
- Use new[] instead of malloc().
llvm-svn: 52951
2008-07-01 07:02:30 +00:00
Seo Sanghyeon
0b4c1205fb
Compilation fix
...
llvm-svn: 52950
2008-07-01 05:27:28 +00:00
Owen Anderson
99a71c6ac6
Properly handle cases where a predecessor of the block being queried on is unreachable.
...
This fixes PR2503, though we should also fix other passes not to emit this kind of code.
llvm-svn: 52946
2008-07-01 00:40:58 +00:00
Owen Anderson
059d64938b
Replace the dynamically computed std::set lookup method for subregisters with a hashtable-based
...
version that is computed by tblgen at the time LLVM is compiled.
llvm-svn: 52945
2008-07-01 00:18:52 +00:00
Dan Gohman
e3b796a81d
Minimize duplicated code in AsmPrinter::printLabel.
...
llvm-svn: 52944
2008-07-01 00:16:26 +00:00
Dan Gohman
c8097f8c8c
Split ISD::LABEL into ISD::DBG_LABEL and ISD::EH_LABEL, eliminating
...
the need for a flavor operand, and add a new SDNode subclass,
LabelSDNode, for use with them to eliminate the need for a label id
operand.
Change instruction selection to let these label nodes through
unmodified instead of creating copies of them. Teach the MachineInstr
emitter how to emit a MachineInstr directly from an ISD label node.
This avoids the need for allocating SDNodes for the label id and
flavor value, as well as SDNodes for each of the post-isel label,
label id, and label flavor.
llvm-svn: 52943
2008-07-01 00:05:16 +00:00
Chuck Rose III
2b35617259
Adding some missing files to VStudio project files. Switching to use generated llvmAsmParser.cpp/.h
...
llvm-svn: 52935
2008-06-30 22:37:57 +00:00
Evan Cheng
a40bb75480
Suppress compiler warning.
...
llvm-svn: 52934
2008-06-30 22:33:56 +00:00
Evan Cheng
488fdf516f
Don't run stack slot coloring if -fast.
...
llvm-svn: 52933
2008-06-30 22:33:16 +00:00
Dan Gohman
e9f33e576d
Don't use ISD namespace opcodes for MachineInstrs.
...
llvm-svn: 52932
2008-06-30 22:23:08 +00:00
Dan Gohman
082b08f33a
Use a simpler but equivalent form of RecordSource.
...
llvm-svn: 52931
2008-06-30 22:21:03 +00:00
Evan Cheng
3ec3837c38
Add timing report for various sub-passes under SelectionDAGISel.
...
llvm-svn: 52930
2008-06-30 22:10:09 +00:00
Dan Gohman
c8c04b1ff4
std::ostream and std::string microoptimizations for asm printing.
...
llvm-svn: 52929
2008-06-30 22:03:41 +00:00
Dan Gohman
081848d881
Make SmallVector's grow use memcpy in common cases
...
instead of std::uninitialized_copy, which uses memmove.
llvm-svn: 52928
2008-06-30 21:45:13 +00:00
Dan Gohman
06ca992a01
Use plain operator new instead of new char[].
...
llvm-svn: 52927
2008-06-30 21:33:02 +00:00
Dan Gohman
9997cc353f
Use reserve.
...
SelectionDAG::allnodes_size is linear, but that doesn't appear to
outweigh the benefit of reducing heap traffic. If it does become a
problem, we should teach SelectionDAG to keep a count of how many
nodes are live, because there are several other places where that
information would be useful as well.
llvm-svn: 52926
2008-06-30 21:04:06 +00:00
Dan Gohman
e58f07e5d6
Update comments to new-style syntax.
...
llvm-svn: 52925
2008-06-30 21:00:56 +00:00
Dan Gohman
6cc648891b
Rename ISD::LOCATION to ISD::DBG_STOPPOINT to better reflect its
...
purpose, and give it a custom SDNode subclass so that it doesn't
need to have line number, column number, filename string, and
directory string, all existing as individual SDNodes to be the
operands.
This was the only user of ISD::STRING, StringSDNode, etc., so
remove those and some associated code.
This makes stop-points considerably easier to read in
-view-legalize-dags output, and reduces overhead (creating new
nodes and copying std::strings into them) on code containing
debugging information.
llvm-svn: 52924
2008-06-30 20:59:49 +00:00
Evan Cheng
3f664b6fd3
Split scheduling from instruction selection.
...
llvm-svn: 52923
2008-06-30 20:45:06 +00:00
Ted Kremenek
834afcfdcd
Added some comments and some cleanups.
...
llvm-svn: 52922
2008-06-30 20:41:22 +00:00
Dale Johannesen
30d136e2c6
No need to align the stack if there are no stack
...
objects. Fixes a couple of tests on Linux.
llvm-svn: 52921
2008-06-30 20:40:16 +00:00
Evan Cheng
a83d69e3b9
Remove unneeded include.
...
llvm-svn: 52920
2008-06-30 20:38:22 +00:00
Dan Gohman
a44757308c
Reorder the fields in TargetLowering to require less padding.
...
llvm-svn: 52919
2008-06-30 20:36:26 +00:00
Dan Gohman
7c7639816b
Change bools to 1-bit bitfields to shrink ArgListEntry slightly.
...
llvm-svn: 52918
2008-06-30 20:33:57 +00:00
Dan Gohman
295abfe228
Replace some std::vectors that showed up in heap profiling with
...
SmallVectors. Change the signature of TargetLowering::LowerArguments
to avoid returning a vector by value, and update the two targets
which still use this directly, Sparc and IA64, accordingly.
llvm-svn: 52917
2008-06-30 20:31:15 +00:00
Owen Anderson
8d6d17cd2c
Add an isReachableFromEntry method.
...
llvm-svn: 52916
2008-06-30 20:28:02 +00:00
Dan Gohman
62c0b69aec
Correct the allocation size for CCState's UsedRegs member, which
...
only needs one bit for each register. UsedRegs is a SmallVector
sized at 16, so this eliminates a heap allocation/free for every
call and return processed by Legalize on most targets.
llvm-svn: 52915
2008-06-30 20:25:31 +00:00