Commit Graph

25955 Commits

Author SHA1 Message Date
Evan Cheng 0d3a754ae8 - Prevent some functions from being inlined to eliminate the code size bloat
introduced by previous commit.
- SelectCode now returns a SDNode*. If it is not null, the selected node
  produces the same number of results as the input node. The seletion loop
  is responsible for calling ReplaceAllUsesWith() to replace the input node
  with the output target node. For other cases, e.g. when load is folded,
  the selection code is responsible for calling ReplaceAllUsesOfValueWith()
  and SelectCode returns NULL.
- Other clean ups.

llvm-svn: 29602
2006-08-11 08:59:35 +00:00
Evan Cheng 5c68bba085 Convert more calls of getNode() that takes a vector to pass in the start of an array.
llvm-svn: 29601
2006-08-11 07:35:45 +00:00
Reid Spencer db554891cb Fix a typo noticed by Gordon Henriksen. Thanks!
llvm-svn: 29597
2006-08-10 21:38:47 +00:00
Reid Spencer e1b3eaf18a llvm2cpp no longer reads LLVM assembly but LLVM bytecode instead. Adjust
the documentation to reflect this.

llvm-svn: 29596
2006-08-10 21:02:25 +00:00
Reid Spencer ba02d8fe7f Add a cleaned-up version of the IRC conversation that spurred this FAQ.
llvm-svn: 29595
2006-08-10 21:01:14 +00:00
Reid Spencer 4bded9c0bb Answer the most frequently asked question, about GEPs. The answer is
sufficiently long that I placed it in a separate file but it links from
the FAQ page. More might need to be added to GetElementPtr.html to
address additional confusion surrounding GEP.

llvm-svn: 29594
2006-08-10 20:15:58 +00:00
Chris Lattner 0d29b30238 Doxygenify some methods.
llvm-svn: 29592
2006-08-10 06:00:40 +00:00
Tanya Lattner b3b1dab569 Adding notes from release experience.
llvm-svn: 29591
2006-08-10 00:23:05 +00:00
Reid Spencer 6ea83217ad Fix a comment.
llvm-svn: 29590
2006-08-09 19:40:13 +00:00
Rafael Espindola 1c41fc9b06 correctly set LocalAreaOffset of TargetFrameInfo
llvm-svn: 29589
2006-08-09 17:37:45 +00:00
Tanya Lattner 7dc6761a16 Fixed misspelling
llvm-svn: 29588
2006-08-09 17:08:27 +00:00
Chris Lattner f9cab8c965 Revert previous patch
llvm-svn: 29585
2006-08-09 16:44:44 +00:00
Tanya Lattner 7f935ba0ae Reverting back to original 1.8 version so I can manually merge in patch.
llvm-svn: 29584
2006-08-09 16:41:21 +00:00
Rafael Espindola f5ce475540 fix the spill code
llvm-svn: 29583
2006-08-09 16:41:12 +00:00
Rafael Espindola 58159b36a3 fix the loading of the link register in emitepilogue
llvm-svn: 29580
2006-08-09 13:15:47 +00:00
Evan Cheng e40c7853da Merge some NightlyTest.pl changes.
llvm-svn: 29579
2006-08-09 05:45:12 +00:00
Evan Cheng fc8c179a62 Recover the lost diff between 1.221 and 1.222.
llvm-svn: 29578
2006-08-09 05:40:14 +00:00
Evan Cheng 545aaa6bb9 Recover the lost diff between 1.5 and 1.6.
llvm-svn: 29577
2006-08-09 05:38:51 +00:00
Tanya Lattner b112bafea5 Update credits and fix sorting issue.
llvm-svn: 29574
2006-08-09 04:18:09 +00:00
Chris Lattner 4d918bbdd3 Update from Anton Korobeynikov
llvm-svn: 29573
2006-08-09 04:10:32 +00:00
Chris Lattner 05a225b1a3 Fixes from Anton Vayvod and Gabor Greif!
llvm-svn: 29572
2006-08-09 04:08:52 +00:00
Rafael Espindola 8c41f99e6f change the addressing mode of the str instruction to reg+imm
llvm-svn: 29571
2006-08-08 20:35:03 +00:00
Chris Lattner 44124236f5 First draft of the llvm 1.8 release notes.
llvm-svn: 29570
2006-08-08 17:27:28 +00:00
John Criswell e6330aeb36 Describe and date modifications we made per LGPL requirements.
llvm-svn: 29569
2006-08-08 14:47:54 +00:00
John Criswell 05de6a9297 Make information more complete.
llvm-svn: 29568
2006-08-08 14:47:33 +00:00
Rafael Espindola 39083e7836 initial support for variable number of arguments
llvm-svn: 29567
2006-08-08 13:02:29 +00:00
Chris Lattner c24a1d3093 Start eliminating temporary vectors used to create DAG nodes. Instead, pass
in the start of an array and a count of operands where applicable.  In many
cases, the number of operands is known, so this static array can be allocated
on the stack, avoiding the heap.  In many other cases, a SmallVector can be
used, which has the same benefit in the common cases.

I updated a lot of code calling getNode that takes a vector, but ran out of
time.  The rest of the code should be updated, and these methods should be
removed.

We should also do the same thing to eliminate the methods that take a
vector of MVT::ValueTypes.

It would be extra nice to convert the dagiselemitter to avoid creating vectors
for operands when calling getTargetNode.

llvm-svn: 29566
2006-08-08 02:23:42 +00:00
Patrick Jenkins da2ace7117 Removed unneccesary output from nightly tester
llvm-svn: 29565
2006-08-08 02:03:53 +00:00
Chris Lattner a2c1bfa6af capacity is a pointer, not a value
llvm-svn: 29564
2006-08-08 01:54:17 +00:00
Reid Spencer 197d7bf9a2 Update the instructions for writing a pass as a loadable module per the
new definition in MakefileGuilde.html and Makefile.rules.

llvm-svn: 29563
2006-08-08 01:48:17 +00:00
Chris Lattner e2af30a922 add a new assign method
llvm-svn: 29562
2006-08-08 01:44:16 +00:00
Chris Lattner 97af9d5d3a Eliminate some malloc traffic by allocating vectors on the stack. Change some
method that took std::vector<SDOperand> to take a pointer to a first operand
and #operands.

This speeds up isel on kc++ by about 3%.

llvm-svn: 29561
2006-08-08 01:09:31 +00:00
Chris Lattner 7c673c322c Add ctor that initializes from a range.
llvm-svn: 29560
2006-08-08 00:37:50 +00:00
Evan Cheng 72bb66a4b8 Eliminate reachability matrix. It has to be calculated before any instruction
selection is done. That's rather expensive especially in situations where it
isn't really needed.
Move back to a searching the predecessors, but make use of topological order
to trim the search space.

llvm-svn: 29559
2006-08-08 00:31:00 +00:00
Evan Cheng bb7dc538c7 New test case.
llvm-svn: 29558
2006-08-07 23:58:47 +00:00
Reid Spencer 325c0cafc2 Fix an anchor name.
llvm-svn: 29557
2006-08-07 23:44:59 +00:00
Chris Lattner 3c36b702f4 Remove assertions from the SmallVector class. They slow down clients of
smallvector too much in a release build.  Removing them speeds up isel 4%.

llvm-svn: 29556
2006-08-07 23:41:59 +00:00
Chris Lattner b5bfd69172 New CSEMap datastructure impl
llvm-svn: 29555
2006-08-07 23:31:24 +00:00
Reid Spencer 70e41b14e0 Make the name of the project consistent with that specified in the
configure.ac file. This fixes some case-consistency issues between the name
of the tarball created by "make dist" and the tarball used for source when
building the LLVM RPM package.

llvm-svn: 29554
2006-08-07 23:23:39 +00:00
Reid Spencer 47b1ed7276 Remove the use of "IncludeFile" from this support facility. The mechanism
to build a loadable module is now correctly defined and documented so this
workaround isn't needed any longer.

llvm-svn: 29553
2006-08-07 23:20:15 +00:00
Reid Spencer 2b6d18a64f Make this example pass use some things from lib/Support (EscapeString,
SlowOperatingInfo, Statistics). Besides providing an example of how to
use these facilities, it also serves to debug problems with runtime linking
when dlopening a loadable module. These three support facilities exercise
different combinations of Text/Weak Weak/Text and Text/Text linking
between the executable and the module.

llvm-svn: 29552
2006-08-07 23:17:24 +00:00
Reid Spencer e6458c3fb2 For PR780:
1. Change the usage of LOADABLE_MODULE so that it implies all the things
   necessary to make a loadable module. This reduces the user's burdern to
   get a loadable module correctly built.
2. Document the usage of LOADABLE_MODULE in the MakefileGuide
3. Adjust the makefile for lib/Transforms/Hello to use the new specification
   for building loadable modules
4. Adjust the sample project to not attempt to build a shared library for
   its little library. This was just wasteful and not instructive at all.

llvm-svn: 29551
2006-08-07 23:12:15 +00:00
Chris Lattner 1ee75ce65d Revamp the "CSEMap" datastructure used in the SelectionDAG class. This
eliminates a bunch of std::map's in the SelectionDAG, replacing them with a
home-grown hashtable.

This is still a work in progress: not all the maps have been moved over and the
hashtable never resizes.  That said, this still speeds up llc 20% on kimwitu++
with -fast -regalloc=local using a release build.

llvm-svn: 29550
2006-08-07 23:03:03 +00:00
Evan Cheng b9d34bd098 Match tablegen isel changes.
llvm-svn: 29549
2006-08-07 22:28:20 +00:00
Evan Cheng 97d5cc165a Making TableGen'd instruction selection code non-recursive. This fixes PR805.
llvm-svn: 29548
2006-08-07 22:17:58 +00:00
Evan Cheng f3bda31296 Move DAGSize to SelectionDAGISel; it's used in tablegen'd isel code.
llvm-svn: 29547
2006-08-07 22:16:08 +00:00
Evan Cheng 445b91a041 Clear TopOrder before assigning topological order. Some clean ups.
llvm-svn: 29546
2006-08-07 22:13:29 +00:00
Evan Cheng 1640ae5a84 Reverse the FlaggedNodes after scanning up for flagged preds or else the order would be reversed.
llvm-svn: 29545
2006-08-07 22:12:12 +00:00
Evan Cheng d5e38e017c Make XMM, FP register dwarf register numbers consistent with gcc.
llvm-svn: 29543
2006-08-07 21:02:39 +00:00
Chris Lattner 751c8f1832 Add a clear method to SmallVector
llvm-svn: 29542
2006-08-07 05:45:34 +00:00