Commit Graph

29544 Commits

Author SHA1 Message Date
Chris Lattner 03503b5e31 new testcase for x86 backend miscompilation
llvm-svn: 33883
2007-02-04 20:15:15 +00:00
Chris Lattner 19083a4671 switch the VRBaseMap in the scheduler from an std::map to a DenseMap. This
speeds up the isel pass from 2.5570s to 2.4722s on kc++ (3.4%).

llvm-svn: 33879
2007-02-04 08:47:20 +00:00
Chris Lattner 9af2c86bc8 Introduce new UnarySDNode/BinarySDNode/TernarySDNode nodes, which coallocate
their operands with the node itself.  This reduces malloc traffic for operand
lists.  This reduces isel time on kc++ from 2.6164 to 2.5570s, about 2.3%.

llvm-svn: 33878
2007-02-04 08:35:21 +00:00
Chris Lattner 69b02ab54c Add a new SDNode ctor and InitOperands method. This allows the operands for
an SDNode to be allocated as part of the node itself, instead of being a
separate new[]'d object.  Switch HandleSDNode, LoadSDNode, and StoreSDNode
to use this mechanism.  This saves one heap allocation and free for each node
of this type that is allocated.  This reduces isel time from 2.7638 to 2.6164s
on kc++, which is a 5.6% speedup.

llvm-svn: 33877
2007-02-04 08:13:53 +00:00
Chris Lattner 22639f3d90 eliminate the SDNode::setValueTypes method.
llvm-svn: 33876
2007-02-04 07:37:24 +00:00
Chris Lattner f17b4222e2 eliminate a bunch of duplicate ctors and helper functions.
llvm-svn: 33875
2007-02-04 07:28:00 +00:00
Reid Spencer d3ba7d9b42 Fix some comments and other minor sundry things.
llvm-svn: 33873
2007-02-04 04:43:17 +00:00
Reid Spencer 2dc3653531 Ensure that visibility and section are properly propagated.
llvm-svn: 33872
2007-02-04 04:30:33 +00:00
Reid Spencer 90246aa71e Back out last revision which was committed by accident.
llvm-svn: 33871
2007-02-04 04:29:21 +00:00
Reid Spencer 2ea1bb2b8a Make sure that section and visibility are properly propagated.
llvm-svn: 33870
2007-02-04 04:28:18 +00:00
Chris Lattner edfc7e5fa2 move MorphNode to out of line and merge setNodeOperands into it. There is
no behavior or performance change here.

llvm-svn: 33869
2007-02-04 02:49:29 +00:00
Chris Lattner 3bf17b6fa5 simplify MorphNodeTo to take a VTList operand.
llvm-svn: 33868
2007-02-04 02:41:42 +00:00
Chris Lattner 486edfbc6f eliminate some extraneous methods in SDNode
llvm-svn: 33867
2007-02-04 02:32:44 +00:00
Chris Lattner 20754cc579 Give each selectiondag node class a home for it's vtable and rtti info
llvm-svn: 33866
2007-02-04 02:23:32 +00:00
Reid Spencer cb4d3f2902 Prepare for PR411
llvm-svn: 33865
2007-02-04 02:11:13 +00:00
Chris Lattner 010ee96261 Encode small integers more densely in foldingset, avoiding overflowing the SmallVector as often.
llvm-svn: 33864
2007-02-04 01:48:10 +00:00
Chris Lattner 289aa4495c Switch VAlueMap from std::map to DenseMap.
llvm-svn: 33863
2007-02-04 01:35:11 +00:00
Chris Lattner 79084305ee Switch NodeMap from std::map to DenseMap, this speeds up isel by 2.3%
llvm-svn: 33862
2007-02-04 01:31:47 +00:00
Chris Lattner 94c44c96d3 swtich vector-> smallvector, speeding up selectiondag stuff 1%
llvm-svn: 33861
2007-02-04 01:20:02 +00:00
Chris Lattner 4b0ddb22e9 Switch promoted/expanded ops over to using a DenseMap. Vector related maps
aren't worth it.

llvm-svn: 33860
2007-02-04 01:17:38 +00:00
Reid Spencer bc7e614093 Regenerate.
llvm-svn: 33859
2007-02-04 01:12:11 +00:00
Reid Spencer d9f7298477 For PR1151:
Make llvm-upgrade valgrind clean. Deleting type instances is a really
nasty thing to do to LLVM. This was a hold-over from the re-write.
This fixes test/Assembler/2007-01-22-UpgradeTypeMapInvalidMemory.ll and
potentially many other bugs.

llvm-svn: 33858
2007-02-04 01:05:23 +00:00
Chris Lattner ed39c86176 switch LegalizedNodes from std::map to a DenseMap. This speeds up isel
time as a whole on kc++ by 11%.

llvm-svn: 33857
2007-02-04 00:50:02 +00:00
Chris Lattner 692457f107 add a version of insert that takes the key and value.
llvm-svn: 33856
2007-02-04 00:42:41 +00:00
Reid Spencer 3f4e6e84dc For PR1163:
Make the Module's dependent library use a std::vector instead of SetVector
adjust #includes in .cpp files because SetVector.h is no longer included.

llvm-svn: 33855
2007-02-04 00:40:42 +00:00
Chris Lattner 09ec2c842a Make SmallSetVector useful
llvm-svn: 33854
2007-02-04 00:30:40 +00:00
Chris Lattner ebeb48d4bc Eliminate some malloc traffic from LegalizeAllNodesNotLeadingTo, speeding
up isel on kimwitu by 0.7%.

llvm-svn: 33853
2007-02-04 00:27:56 +00:00
Chris Lattner cba058ce51 Eliminate some std::sets. This speeds up isel of kimwitu by about 0.9%
llvm-svn: 33852
2007-02-04 00:24:41 +00:00
Reid Spencer d751385a7a Make sure the gccas script is executable.
llvm-svn: 33851
2007-02-04 00:23:51 +00:00
Reid Spencer f9eabff001 For PR1067:
Update library documentation after removal of libLLVMTransforms.a that
resulted from removal of the LevelRaise pass.

llvm-svn: 33850
2007-02-04 00:17:35 +00:00
Chris Lattner feec7137ce Switch SelectionDAG::ReplaceAllUsesOfValueWith to use a SmallSetVector for
the users set (most nodes have 1 or 2 users).  This speeds up the isel pass
3.2% on kimwitu.

llvm-svn: 33849
2007-02-04 00:14:31 +00:00
Chris Lattner 0732bec915 Various bugfixes
llvm-svn: 33848
2007-02-04 00:12:12 +00:00
Chris Lattner 0a165eedd1 describe SmallSetVector
llvm-svn: 33847
2007-02-04 00:00:26 +00:00
Chris Lattner 2b2b6c6c97 Convert SetVector to be a true adapter class and add SmallSetVector.
llvm-svn: 33846
2007-02-03 23:56:03 +00:00
Chris Lattner 6c344e56b1 remove some dead code
llvm-svn: 33845
2007-02-03 23:28:07 +00:00
Reid Spencer 8de97bba5a For PR1072:
Removing -raise has neglible positive or negative side effects so we are
opting to remove it. See the PR for comparison details.

llvm-svn: 33844
2007-02-03 23:15:56 +00:00
Chris Lattner 7ccf30bb17 add an instcombine pass to clean up after heavy-lifting IP passes
llvm-svn: 33843
2007-02-03 23:06:03 +00:00
Chris Lattner 265345fc65 null -> pointer, nul -> character :)
llvm-svn: 33841
2007-02-03 22:04:27 +00:00
Reid Spencer 31882b8831 Fix some spellos.
llvm-svn: 33840
2007-02-03 21:06:43 +00:00
Chris Lattner f043f7653e fix grammar
llvm-svn: 33839
2007-02-03 20:17:53 +00:00
Chris Lattner 9dd7a380a8 Serious cleanups. Make the TOC match the text for the class hierarchy,
move the sections of the class-h around in the right order, make it actually
reflect the classes in LLVM today.

llvm-svn: 33838
2007-02-03 20:02:25 +00:00
Chris Lattner 4e406a9f8e Add TOC
llvm-svn: 33837
2007-02-03 19:51:56 +00:00
Chris Lattner f233c425cd describe map-like containers
llvm-svn: 33836
2007-02-03 19:49:31 +00:00
Chris Lattner db83265e3c 8 buckets is way too small to start out with. This was only for testing.
llvm-svn: 33835
2007-02-03 19:30:48 +00:00
Reid Spencer 5458e0e135 Clean this up a bit: hide command unless verbose output requested, echo
a useful comment line, add a clean target.

llvm-svn: 33834
2007-02-03 16:09:12 +00:00
Evan Cheng 9d851fca1e Add a test case.
llvm-svn: 33833
2007-02-03 09:14:10 +00:00
Evan Cheng 456db39ea9 ARM callseq_end should have a input flag operand so it would be scheduled right after the call.
llvm-svn: 33832
2007-02-03 09:11:58 +00:00
Evan Cheng 4b6c8f7f5e Fix comments.
llvm-svn: 33831
2007-02-03 08:53:01 +00:00
Chris Lattner 68b0ec54c2 improve grammar
llvm-svn: 33830
2007-02-03 08:20:15 +00:00
Chris Lattner f5ddd043d6 improve grammar
llvm-svn: 33829
2007-02-03 08:10:45 +00:00