Commit Graph

25994 Commits

Author SHA1 Message Date
Chris Lattner
d41ae8bc0c Replace the SSA update code in LCSSA with a bottom-up approach instead of a top
down approach, inspired by discussions with Tanya.

This approach is significantly faster, because it does not need dominator
frontiers and it does not insert extraneous unused PHI nodes.  For example, on
252.eon, in a release-asserts build, this speeds up LCSSA (which is the slowest
pass in gccas) from 9.14s to 0.74s on my G5.  This code is also slightly smaller
and significantly simpler than the old code.

Amusingly, in a normal Release build (which includes the
"assert(L->isLCSSAForm());" assertion), asserting that the result of LCSSA
is in LCSSA form is actually slower than the LCSSA transformation pass
itself on 252.eon.  I will see if Loop::isLCSSAForm can be sped up next.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29463 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-02 00:06:09 +00:00
Chris Lattner
d3a680ae2c Fix the build on case-sensitive filesystems :(
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29457 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-01 22:34:35 +00:00
Chris Lattner
6aba48338f Add dominates/properlyDominates queries to IDom.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29456 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-01 22:24:47 +00:00
Jim Laskey
9373beba60 Now that the ISel is available, it's possible to create a default instruction
scheduler creator.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29452 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-01 19:14:14 +00:00
Rafael Espindola
1ed3af11b5 start comments with #
move the constant pool to .text
correctly print loads of labels
mark R0, R1, R2 and R3 as caller save


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29451 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-01 18:53:10 +00:00
Jim Laskey
9ff542f2cc 1. Change use of "Cache" to "Default".
2. Added argument to instruction scheduler creators so the creators can do
special things.
3. Repaired target hazard code.
4. Misc.

More to follow.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29450 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-01 18:29:48 +00:00
Chris Lattner
2f2d32437a no need to check readability here
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29449 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-01 18:22:21 +00:00
Chris Lattner
0d167276dd Remove some now-dead methods. Use getFileStatus instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29447 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-01 18:16:02 +00:00
Chris Lattner
33b0e9c644 No need to check isWriteable here (which isn't sufficient anyway). Just attempt
to do the operation and if it fails, oh well.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29446 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-01 18:12:29 +00:00
Chris Lattner
8bdbb04f9b Use Path::getFileStatus
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29445 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-01 18:09:46 +00:00
Chris Lattner
0b32d8b764 Use Path::getFileStatus to get status-related info.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29444 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-01 18:04:01 +00:00
Chris Lattner
8961501c9b Use getFileStatus instead of Path::isDirectory().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29443 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-01 17:59:14 +00:00
Chris Lattner
c7c453a845 elimiante some syscalls
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29442 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-01 17:51:09 +00:00
Reid Spencer
3336aa056f Update my entry.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29438 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-01 16:52:07 +00:00
Chris Lattner
936ef2fdb9 Update Bil's entry
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29437 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-01 16:40:42 +00:00
Jim Laskey
c6a0a117a6 Forgot the added files for plugable machine passes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29436 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-01 16:31:08 +00:00
Reid Spencer
704e81f6e8 Fix HTML 4.01 Strict errors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29435 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-01 16:23:54 +00:00
Jim Laskey
13ec702c43 Introducing plugable register allocators and instruction schedulers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29434 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-01 14:21:23 +00:00
Rafael Espindola
06c1e7eacb implement LowerConstantPool and LowerGlobalAddress
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29433 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-01 12:58:43 +00:00
Jim Laskey
abf41f2e0a Adding to credibility.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29432 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-01 09:01:40 +00:00
Evan Cheng
e6f35d8a5c Added AssignTopologicalOrder() to assign each node an unique id based on their topological order.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29431 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-01 08:20:41 +00:00
Evan Cheng
db3cc3d7d6 Factor topological order code to SelectionDAG. Clean up.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29430 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-01 08:17:22 +00:00
Reid Spencer
9bf2e7f53d Fix a problem with use of undefined variables. Print an error message if
the first argument is omitted. Attempt to use a standard/default font.
Make the generation of the DOT file readable.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29429 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-01 08:09:03 +00:00
Anton Korobeynikov
1a7d326359 Minor fix due to recent API changes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29428 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-01 08:07:22 +00:00
Reid Spencer
ca6a18f9dc Update to include new options.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29426 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-01 07:38:39 +00:00
Reid Spencer
e131ec935b Update library dependency information, describe new libraries, talk a
little about llvm-config as a source for help with library dependencies.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29425 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-01 07:32:01 +00:00
Anton Korobeynikov
8f2105bcb9 Added myself to credits.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29424 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-01 07:06:00 +00:00
Evan Cheng
d3f8429f01 Pass N by reference to select functions to prevent gcc from allocating more stack.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29423 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-01 01:07:48 +00:00
Evan Cheng
8825a485e2 PIC jump table entries are always 32-bit even in 64-bit mode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29422 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-01 01:03:13 +00:00
Chris Lattner
03ed625c66 If dejagnu is not found, tell the user instead of bombing out with an
obscure error.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29421 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-01 00:07:58 +00:00
Chris Lattner
f76d180c95 Fix PR850 and CodeGen/X86/2006-07-31-SingleRegClass.ll.
The CFE refers to all single-register constraints (like "A") by their 16-bit
name, even though the 8 or 32-bit version of the register may be needed.
The X86 backend should realize what is going on and redecode the name back
to its proper form.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29420 91177308-0d34-0410-b5e6-96231b3b80d8
2006-07-31 23:26:50 +00:00
Chris Lattner
7fbb2ec33a New testcase for PR850.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29419 91177308-0d34-0410-b5e6-96231b3b80d8
2006-07-31 23:25:17 +00:00
Jim Laskey
6c3acb7222 Changed to a new directory for opensource checkout.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29418 91177308-0d34-0410-b5e6-96231b3b80d8
2006-07-31 21:37:55 +00:00
Rafael Espindola
6d581e8d15 handle GlobalValue::InternalLinkage in doFinalization
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29417 91177308-0d34-0410-b5e6-96231b3b80d8
2006-07-31 20:38:13 +00:00
Jim Laskey
f55914a529 Fix a couple typos.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29416 91177308-0d34-0410-b5e6-96231b3b80d8
2006-07-31 20:18:49 +00:00
Evan Cheng
6966c48767 Remove an unneeded match condition: the type check for root node has been
moved to outside the actual select routine.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29415 91177308-0d34-0410-b5e6-96231b3b80d8
2006-07-31 19:01:58 +00:00
Evan Cheng
ca3202893c Remove a duplicate pattern.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29414 91177308-0d34-0410-b5e6-96231b3b80d8
2006-07-31 18:43:10 +00:00
Evan Cheng
043eb829cc Remove a duplicate pattern/
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29413 91177308-0d34-0410-b5e6-96231b3b80d8
2006-07-31 18:42:49 +00:00
Chris Lattner
6646383717 testcase for PR854.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29412 91177308-0d34-0410-b5e6-96231b3b80d8
2006-07-31 17:31:48 +00:00
Chris Lattner
61095d7cf0 Testcase for GCC bug28417, ensuring that we don't start getting it wrong
somehow.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29410 91177308-0d34-0410-b5e6-96231b3b80d8
2006-07-30 17:46:37 +00:00
Andrew Lenharth
e36de54797 fix externals
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29409 91177308-0d34-0410-b5e6-96231b3b80d8
2006-07-29 04:27:34 +00:00
Chris Lattner
4a6bd33da0 Instead of blindly looking past constantexpr casts, actually constant
fold them.  This correctly truncates constants that are too large for the
destination slot and makes the code easier to understand.  This fixes PR853
and Regression/CodeGen/X86/2006-07-28-AsmPrint-Long-As-Pointer.ll


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29408 91177308-0d34-0410-b5e6-96231b3b80d8
2006-07-29 01:57:19 +00:00
Chris Lattner
03a4605d87 New testcase for PR853
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29407 91177308-0d34-0410-b5e6-96231b3b80d8
2006-07-29 01:50:53 +00:00
Chris Lattner
501d529ccc Remove a redundant syscall.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29405 91177308-0d34-0410-b5e6-96231b3b80d8
2006-07-28 22:52:11 +00:00
Evan Cheng
b6ee7f73e5 Split each select function for a particular opcode into multiple ones. One
per possible ValueType of the node. e.g. Select_add is split into Select_add_i8,
Select_add_i16, etc.

For opcodes which do not produce a non-chain result, it is split on the
ValueType of its first non-chain operand. e.g. Select_store.

On X86 / Mac OS X, Select_store used to be the largest function. It had a stack
frame size of 8.5k. Now the largest one is Store_i32 with a frame size of 3.1k.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29404 91177308-0d34-0410-b5e6-96231b3b80d8
2006-07-28 22:51:01 +00:00
Reid Spencer
ceaf1c33c0 Fix the --with-extra-options to use the correct variable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29403 91177308-0d34-0410-b5e6-96231b3b80d8
2006-07-28 22:50:07 +00:00
Chris Lattner
1bebfb5ae4 Modify setStatusInfoOnDisk to not throw an exception.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29402 91177308-0d34-0410-b5e6-96231b3b80d8
2006-07-28 22:36:17 +00:00
Chris Lattner
7dea1019c1 Update win32 for Path::getStatusInfo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29401 91177308-0d34-0410-b5e6-96231b3b80d8
2006-07-28 22:32:09 +00:00
Chris Lattner
0c33231eff Modify Path::eraseFromDisk to not throw an exception.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29400 91177308-0d34-0410-b5e6-96231b3b80d8
2006-07-28 22:29:50 +00:00
Chris Lattner
65a392ebea Finegrainify namespacification, minor cleanups
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29399 91177308-0d34-0410-b5e6-96231b3b80d8
2006-07-28 22:21:01 +00:00