Commit Graph

25924 Commits

Author SHA1 Message Date
Chris Lattner
f06f35e30b 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%.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29561 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-08 01:09:31 +00:00
Chris Lattner
8de353df9d Add ctor that initializes from a range.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29560 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-08 00:37:50 +00:00
Evan Cheng
f4b4c416d3 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29559 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-08 00:31:00 +00:00
Evan Cheng
080e187dfb New test case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29558 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-07 23:58:47 +00:00
Reid Spencer
d1001f2ac2 Fix an anchor name.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29557 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-07 23:44:59 +00:00
Chris Lattner
d0337c1678 Remove assertions from the SmallVector class. They slow down clients of
smallvector too much in a release build.  Removing them speeds up isel 4%.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29556 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-07 23:41:59 +00:00
Chris Lattner
51a4911121 New CSEMap datastructure impl
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29555 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-07 23:31:24 +00:00
Reid Spencer
1b22fde3b2 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29554 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-07 23:23:39 +00:00
Reid Spencer
dc4f6bea6c 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29553 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-07 23:20:15 +00:00
Reid Spencer
05445e30aa 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29552 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-07 23:17:24 +00:00
Reid Spencer
42fe455d37 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29551 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-07 23:12:15 +00:00
Chris Lattner
a5682853b9 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29550 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-07 23:03:03 +00:00
Evan Cheng
2ef88a09b7 Match tablegen isel changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29549 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-07 22:28:20 +00:00
Evan Cheng
9bdca0302a Making TableGen'd instruction selection code non-recursive. This fixes PR805.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29548 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-07 22:17:58 +00:00
Evan Cheng
fe8dc2e2c8 Move DAGSize to SelectionDAGISel; it's used in tablegen'd isel code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29547 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-07 22:16:08 +00:00
Evan Cheng
99157a00a6 Clear TopOrder before assigning topological order. Some clean ups.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29546 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-07 22:13:29 +00:00
Evan Cheng
3b97acdbdb Reverse the FlaggedNodes after scanning up for flagged preds or else the order would be reversed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29545 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-07 22:12:12 +00:00
Evan Cheng
e46e1a5da7 Make XMM, FP register dwarf register numbers consistent with gcc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29543 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-07 21:02:39 +00:00
Chris Lattner
f5e42bfed1 Add a clear method to SmallVector
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29542 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-07 05:45:34 +00:00
Reid Spencer
25259a3149 Remove extraneous #include.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29541 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-07 05:36:24 +00:00
Reid Spencer
a8e80c5188 Make the removal of files use Path::eraseFromDisk just like it does for
the removal of directories. Using std::remove is indiscriminate and can
lead to the removal of things like /dev/null if run as root. The
Path::eraseFromDisk method ensures that we only ever remove regular files
or directories, but never character or block special nodes.  This should
clear up the problem with usage like: llvm-as -o /dev/null which is used
in the llvm-test makefiles.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29540 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-07 05:34:08 +00:00
Reid Spencer
bffdc36c38 Add a note about how the "isFile" check in Path::eraseFromDisk prevents
the erasure of non-file paths like /dev/null.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29539 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-07 05:20:05 +00:00
Patrick Jenkins
e8501eb1bb Reinstated the sending of a list of all dejagnutests run. Also fixed a rather embarresing error introduced during version 1.41 where i commented out the actual sending of the data to the results server.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29538 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-07 01:54:37 +00:00
Patrick Jenkins
1c3bf94a42 no longer sending the list of all dejagnu tests because it is too big at the present time
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29537 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-06 21:47:43 +00:00
Chris Lattner
cfb3ba060a Silence a warning on x86-64, reported by chandlerc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29535 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-06 18:12:50 +00:00
Evan Cheng
e6ffe61c84 This causes some random crashes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29534 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-05 17:31:00 +00:00
Anton Korobeynikov
3acbb9b9d4 Fixed typo. Thanks, Reid.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29533 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-04 22:55:53 +00:00
Anton Korobeynikov
de9c02b171 Removed usage of "sort", which can lead to undeterministic behavior on mingw & cygwin platforms.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29532 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-04 21:52:23 +00:00
Patrick Jenkins
cf65fb6503 Changed a = to a .= so we now append tests we have performed to the master list of all tests instead of assigning it as the master list.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29531 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-04 21:42:58 +00:00
Devang Patel
304d5f2edc Collect references from globals.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29530 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-04 19:10:26 +00:00
Reid Spencer
a773bd54f3 Update the auto* tools: autoconf 2.60, libtool 1.5.22, automake 1.9.6.
Update ltld.[ch] to version 1.5.22.
Correct the notes about updating these tools (autoconf/README.TXT)
Add configure options for getting the correct option for including a whole
archive when linking.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29529 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-04 18:18:08 +00:00
Jim Laskey
5fa8fff8d2 Added how to add machine passes to command line options.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29528 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-04 18:10:12 +00:00
Chris Lattner
2210eeb0d2 converge on the right number of %'s :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29527 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-04 18:09:27 +00:00
Patrick Jenkins
e631c4a5b2 Made some more changes to the print statements in the nightly tester. The last commit was a preemptive strike.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29526 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-04 17:55:01 +00:00
Patrick Jenkins
ea103a86fa Encapsulated all of the print statements in "if( $VERBOSE) { }". The testing script will be absoutely silent now except for errors, which will still be printed to the annoyance of the user.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29525 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-04 17:53:27 +00:00
Chris Lattner
190a418bf6 Make SelectionDAG::RemoveDeadNodes iterative instead of recursive, which
also make it simpler.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29524 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-04 17:45:20 +00:00
Patrick Jenkins
7e5c373d07 We should now send the correct list of dejagnu tests instead of the csv file of test results when we submit results back to the nightly tester.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29523 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-04 17:40:54 +00:00
Reid Spencer
cfa529182f Use the %llvm-gcc% variable to find llvm-gcc for those of us that don't
have it in our path and to ensure it uses the configured llvm-gcc not just
any one randomly placed in the path.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29522 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-04 17:35:18 +00:00
Rafael Espindola
341b864c8d use a 'register pressure reducing' scheduler
make sure only one move is used in a hello world


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29520 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-04 12:48:42 +00:00
Rafael Espindola
6312da0fc7 Bug fix: always generate a RET_FLAG in LowerRET
fixes ret_null.ll and call.ll


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29519 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-03 22:50:11 +00:00
Chris Lattner
c75a04bd2e updated CVS server location
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29518 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-03 22:14:43 +00:00
Reid Spencer
ecfe0888b6 For PR845:
Enable the makefile check on the result of find-cycles.pl. LLVM is now
cycle free and we intend to keep it that way. This patch will fail the
build if cycles are found.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29517 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-03 21:46:42 +00:00
Reid Spencer
d8c20a9cf8 Fix a typo in the name of expand_dependencies.
Make the dependency line pattern match handle white space better.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29516 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-03 21:45:35 +00:00
Chris Lattner
8cfe6335e4 Fix PR867 (and maybe 868) and testcsae:
Transforms/SimplifyCFG/2006-08-03-Crash.ll


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29515 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-03 21:40:24 +00:00
Chris Lattner
006f2d0afd new testcase for pr867
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29514 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-03 21:39:41 +00:00
Jim Laskey
c0131f8788 Applying for all.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29512 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-03 20:56:35 +00:00
Jim Laskey
f492391de0 Copy the liveins for the first block. PR859
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29511 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-03 20:51:06 +00:00
Jim Laskey
93d537c1d6 Make all the schedulers continue to work.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29510 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-03 20:49:29 +00:00
Reid Spencer
d0fa46aa62 Print an error message if the lib directory (first argument) is not a
directory.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29508 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-03 19:10:03 +00:00
Chris Lattner
1eaf0ac1dc update comment
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29507 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-03 18:57:28 +00:00