Chris Lattner [Mon, 4 Sep 2006 18:34:16 +0000 (18:34 +0000)]
lli uses LinkAllCodegenComponents, so it needs this. Thanks to
Rafael Esp?ndola for pointing this out
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30100
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 4 Sep 2006 18:27:40 +0000 (18:27 +0000)]
Correct fix for a crasher on functions with live in values
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30099
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 4 Sep 2006 18:20:15 +0000 (18:20 +0000)]
Hack around a regression I introduced yesterday
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30098
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Mon, 4 Sep 2006 07:44:11 +0000 (07:44 +0000)]
forgot this
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30097
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 4 Sep 2006 06:39:52 +0000 (06:39 +0000)]
Fix a build problem
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30096
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Mon, 4 Sep 2006 06:21:35 +0000 (06:21 +0000)]
add setJumpBufSize() and setJumpBufAlignment() to target-lowering.
Call these from your backend to enjoy setjmp/longjmp goodness, see
lib/Target/IA64/IA64ISelLowering.cpp for an example
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30095
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 4 Sep 2006 06:12:14 +0000 (06:12 +0000)]
Update this to reflect llvm-config usage
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30094
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 4 Sep 2006 06:07:12 +0000 (06:07 +0000)]
Remove some dead makefilery
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30093
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 4 Sep 2006 06:04:03 +0000 (06:04 +0000)]
Use llvm-config to determine what to link in
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30092
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 4 Sep 2006 06:01:43 +0000 (06:01 +0000)]
Use llvm-config instead of magic JIT thing to link in libs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30091
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 4 Sep 2006 05:59:09 +0000 (05:59 +0000)]
Use LINK_COMPONENTS to specify *components* to link against instead of
using USED_LIBS to specify *libraries* to link against.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30090
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 4 Sep 2006 05:35:23 +0000 (05:35 +0000)]
Allow things like --libs CBackend
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30089
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 4 Sep 2006 05:24:16 +0000 (05:24 +0000)]
Switch to using llvm-config to build
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30088
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 4 Sep 2006 05:23:20 +0000 (05:23 +0000)]
Bugfix for llvm-config support
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30087
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 4 Sep 2006 04:50:10 +0000 (04:50 +0000)]
Make LINK_COMPONENTS interact well with make clean
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30086
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 4 Sep 2006 04:47:49 +0000 (04:47 +0000)]
Switch to using llvm-config to select components to link in.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30085
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 4 Sep 2006 04:47:21 +0000 (04:47 +0000)]
Add a new make option (LINK_COMPONENTS) which tools can use to specify what
libraries they need. This uses llvm-config to link the tools.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30084
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 4 Sep 2006 04:27:07 +0000 (04:27 +0000)]
Document build order dependencies. Make sure that llvm-config is built before
tools.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30083
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 4 Sep 2006 04:16:09 +0000 (04:16 +0000)]
new file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30082
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 4 Sep 2006 04:14:57 +0000 (04:14 +0000)]
Completely rearchitect the interface between targets and the pass manager.
This pass:
1. Splits TargetMachine into TargetMachine (generic targets, can be implemented
any way, like the CBE) and LLVMTargetMachine (subclass of TM that is used by
things using libcodegen and other support).
2. Instead of having each target fully populate the passmgr for file or JIT
output, move all this to common code, and give targets hooks they can
implement.
3. Commonalize the target population stuff between file emission and JIT
emission.
4. All (native code) codegen stuff now happens in a FunctionPassManager, which
paves the way for "fast -O0" stuff in the CFE later, and now LLC could
lazily stream .bc files from disk to use less memory.
5. There are now many fewer #includes and the targets don't depend on the
scalar xforms or libanalysis anymore (but codegen does).
6. Changing common code generator pass ordering stuff no longer requires
touching all targets.
7. The JIT now has the option of "-fast" codegen or normal optimized codegen,
which is now orthogonal to the fact that JIT'ing is being done.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30081
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 4 Sep 2006 04:08:58 +0000 (04:08 +0000)]
Add accessor
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30080
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 4 Sep 2006 04:07:39 +0000 (04:07 +0000)]
Add explicit doInitialization/doFinalization methods instead of making
the FunctionPassManager redo this for each function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30079
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 4 Sep 2006 04:06:01 +0000 (04:06 +0000)]
remove #include
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30078
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 4 Sep 2006 04:04:41 +0000 (04:04 +0000)]
rearrange targets to satisfy dependencies. Too bad we aren't using llvm-config.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30077
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 4 Sep 2006 01:49:10 +0000 (01:49 +0000)]
If a cycle exists, don't succeed building the second time around.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30076
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 4 Sep 2006 01:48:32 +0000 (01:48 +0000)]
remove message
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30075
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 4 Sep 2006 01:02:25 +0000 (01:02 +0000)]
Rearrange library linkage order.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30074
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 3 Sep 2006 18:44:26 +0000 (18:44 +0000)]
Eliminate target name.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30071
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 3 Sep 2006 18:44:02 +0000 (18:44 +0000)]
Simplify target construction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30070
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 3 Sep 2006 18:38:30 +0000 (18:38 +0000)]
Remove use of target::getName()
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30069
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 3 Sep 2006 18:37:12 +0000 (18:37 +0000)]
eliminate use of TM.getName()
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30068
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Sun, 3 Sep 2006 13:19:16 +0000 (13:19 +0000)]
add the SETULT condition code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30067
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 3 Sep 2006 08:07:11 +0000 (08:07 +0000)]
Avoid beating on the mi2i map when we know the answer already.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30066
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 3 Sep 2006 07:53:50 +0000 (07:53 +0000)]
minor speedup
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30065
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 3 Sep 2006 07:15:37 +0000 (07:15 +0000)]
Fix Regression/CodeGen/Generic/2006-09-02-LocalAllocCrash.ll on X86.
Just because an alias of a register is available, it doesn't mean that we
can arbitrarily evict the register.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30064
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 3 Sep 2006 07:14:47 +0000 (07:14 +0000)]
Testcase (distilled from crafty) that crashed the local RA on X86.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30063
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 3 Sep 2006 00:06:08 +0000 (00:06 +0000)]
When deleting a machine instruction, make sure to remove it from the
livevariables information. This fixes several regalloc=local failures on x86
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30062
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 3 Sep 2006 00:05:09 +0000 (00:05 +0000)]
Move two methods out of line, make them work when the record for a machine
instruction includes physregs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30061
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 2 Sep 2006 23:09:24 +0000 (23:09 +0000)]
Count the time for a pass to ReleaseMemory against that pass. Not doing this
was under accounting for the time that livevariables cost
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30060
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Sat, 2 Sep 2006 22:46:58 +0000 (22:46 +0000)]
Make this testcase actually recursive. I accidentally committed the wrong copy last time.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30059
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 2 Sep 2006 22:27:29 +0000 (22:27 +0000)]
Fix a typo pointed out by Gabor
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30058
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Sat, 2 Sep 2006 21:19:44 +0000 (21:19 +0000)]
Make ArgumentPromotion handle recursive functions that pass pointers in their recursive calls.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30057
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Sat, 2 Sep 2006 20:24:25 +0000 (20:24 +0000)]
add more condition codes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30056
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Sat, 2 Sep 2006 19:40:38 +0000 (19:40 +0000)]
Improve handling of SelectInst.
Reorder operations to remove duplicated work.
Fix to leave floating-point types out of the optimization.
Add tests to predsimplify.ll for SwitchInst and SelectInst handling.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30055
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 2 Sep 2006 17:37:30 +0000 (17:37 +0000)]
improve compat with certain versions of GCC (on cygwin?)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30054
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 2 Sep 2006 05:37:53 +0000 (05:37 +0000)]
add a prototype
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30051
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 2 Sep 2006 05:32:53 +0000 (05:32 +0000)]
Iteration is required for some cases, even if they don't occur in crafty.
Restore it, which re-fixes X86/2006-08-21-ExtraMovInst.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30050
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 2 Sep 2006 05:26:59 +0000 (05:26 +0000)]
When joining two intervals where the RHS is really simple, use a light-weight
method for joining the live ranges instead of the fully-general one.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30049
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 2 Sep 2006 05:26:01 +0000 (05:26 +0000)]
new method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30048
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 1 Sep 2006 23:50:17 +0000 (23:50 +0000)]
Another "cyclic DAG" test case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30043
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 1 Sep 2006 22:52:28 +0000 (22:52 +0000)]
Oops. Bad typo. Without the check of N1.hasOneUse() bad things can happen.
Suppose the TokenFactor can reach the Op:
[Load chain]
^
|
[Load]
^ ^
| |
/ \-
/ |
/ [Op]
/ ^ ^
| .. |
| / |
[TokenFactor] |
^ |
| |
\ /
\ /
[Store]
If we move the Load below the TokenFactor, we would have created a cycle in
the DAG.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30040
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 1 Sep 2006 22:28:02 +0000 (22:28 +0000)]
Use a couple of multiclass patterns to factor some integer ops.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30039
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 1 Sep 2006 22:16:22 +0000 (22:16 +0000)]
remove a bunch of comments
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30038
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 1 Sep 2006 22:07:27 +0000 (22:07 +0000)]
Make sure to clear CurDefmPrefix = 0, otherwise stuff after a defm won't
parse right. This fixes TableGen/MultiClass.td
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30037
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 1 Sep 2006 22:07:00 +0000 (22:07 +0000)]
Make this harder
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30036
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 1 Sep 2006 22:01:36 +0000 (22:01 +0000)]
Fix a typo Jim pointed out, thanks!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30035
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 1 Sep 2006 21:59:03 +0000 (21:59 +0000)]
fix an assertion with multidefs. Def inside of multiclasses don't need to
be complete.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30034
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 1 Sep 2006 21:47:10 +0000 (21:47 +0000)]
Fixed formatting problem.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30033
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 1 Sep 2006 21:46:01 +0000 (21:46 +0000)]
document !strconcat
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30032
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 1 Sep 2006 21:46:00 +0000 (21:46 +0000)]
Added documentation Fernando Magno Quintao Pereira wrote for the register
allocator. (First draft)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30031
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 1 Sep 2006 21:44:18 +0000 (21:44 +0000)]
Document multiclasses and defm's
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30030
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 1 Sep 2006 21:14:42 +0000 (21:14 +0000)]
regenerate
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30029
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 1 Sep 2006 21:14:37 +0000 (21:14 +0000)]
simple multiclass example
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30028
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 1 Sep 2006 21:13:49 +0000 (21:13 +0000)]
Add often-requested support for defining "multiclasses" which can be instantiated.
This allows you to define multiple definitions with one line, encouraging
more .td file factoring.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30027
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Fri, 1 Sep 2006 20:35:17 +0000 (20:35 +0000)]
- Fixed broken Win32 build
- Removed warning about clobbered parameter in Bytecode/Reader
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30026
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 1 Sep 2006 18:45:22 +0000 (18:45 +0000)]
Remove extra spaces.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30025
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 1 Sep 2006 18:42:59 +0000 (18:42 +0000)]
Last check-in was a mistake...
I've been told apple gcc version number is not guaranteed to increase
monotonically. Change the preprocess condition to make it less risky.
The configuration change is done during the middle 10.4 life cycle so we have
to check __APPLE_CC. For future OS X release, we should be able to assume
-fenable-cxa-atexit is the default.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30024
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 1 Sep 2006 18:40:46 +0000 (18:40 +0000)]
*** empty log message ***
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30023
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 1 Sep 2006 18:17:58 +0000 (18:17 +0000)]
Allow legalizer to expand ISD::MUL using only MULHS in the rare case that is
possible and the target only supports MULHS.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30022
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Fri, 1 Sep 2006 12:55:05 +0000 (12:55 +0000)]
Corrections.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30021
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 1 Sep 2006 07:09:56 +0000 (07:09 +0000)]
Better comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30017
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 1 Sep 2006 07:00:46 +0000 (07:00 +0000)]
Yikes. This requires checking apple gcc version.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30016
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 1 Sep 2006 07:00:23 +0000 (07:00 +0000)]
Pull some code out of a hot recursive function because the common case doesn't
need recursion.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30015
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 1 Sep 2006 06:57:35 +0000 (06:57 +0000)]
remove some particularly expensive assertions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30014
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 1 Sep 2006 06:10:18 +0000 (06:10 +0000)]
Reserve space in the ValueNumberInfo vector. This speeds up live interval
analysis 16% on crafty.
Wrap long lines.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30012
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 1 Sep 2006 06:08:16 +0000 (06:08 +0000)]
add a simple reserve method.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30011
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 1 Sep 2006 04:02:42 +0000 (04:02 +0000)]
Iterative coallescing doesn't buy us anything (we get identical results on
crafty with and without it). Removing it speeds up live intervals 6%.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30010
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Fri, 1 Sep 2006 03:26:35 +0000 (03:26 +0000)]
Don't confuse canonicalize and lookup. Fixes predsimplify.reg4.ll. Also
corrects missing optimization opportunity removing cases from a switch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30009
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 31 Aug 2006 07:41:12 +0000 (07:41 +0000)]
DAG combiner fix for rotates. Previously the outer-most condition checks
for ROTL availability. This prevents it from forming ROTR for targets that
has ROTR only.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29997
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 31 Aug 2006 06:48:26 +0000 (06:48 +0000)]
Add a special case that speeds up coallescing a bit, but not enough.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29996
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 31 Aug 2006 05:58:59 +0000 (05:58 +0000)]
Delete copies as they are coallesced instead of waiting until the end.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29995
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 31 Aug 2006 05:54:43 +0000 (05:54 +0000)]
avoid calling the virtual isMoveInstr method endlessly by caching its results.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29994
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 31 Aug 2006 04:26:31 +0000 (04:26 +0000)]
Add a note about C++ -> C with libstdc++
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29993
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Thu, 31 Aug 2006 03:13:05 +0000 (03:13 +0000)]
This program crashes the PredicateSimplifier. Not marked XFAIL because
the PredicateSimplifier is skipped in make check anyways.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29992
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Thu, 31 Aug 2006 00:39:16 +0000 (00:39 +0000)]
Properties where both Values weren't in the union (as being equal to
another Value) weren't being found by findProperties.
This fixes predsimplify.ll test6, a missed optimization opportunity.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29991
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 30 Aug 2006 23:03:35 +0000 (23:03 +0000)]
Bugfix for recent coallescer crash
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29990
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 30 Aug 2006 23:02:29 +0000 (23:02 +0000)]
Fix a compiler crash bootstrapping llvm-gcc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29989
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 30 Aug 2006 20:47:48 +0000 (20:47 +0000)]
Restore source-level compatibility with clients of these functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29978
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 30 Aug 2006 20:37:06 +0000 (20:37 +0000)]
Guess what happens when asserts are disabled. :(
Also, the assert could never fire due to || instead of &&.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29977
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 30 Aug 2006 05:56:52 +0000 (05:56 +0000)]
fix 80 column issue
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29972
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 30 Aug 2006 04:17:00 +0000 (04:17 +0000)]
Instantiate Statistic<> in one place, not in every .o file that uses it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29971
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Wed, 30 Aug 2006 02:46:48 +0000 (02:46 +0000)]
Move to using the EquivalenceClass ADT. Removes SynSets.
If a branch's condition has become a ConstantBool, simplify it immediately.
Removing the edge saves work and exposes up more optimization opportunities
in the pass.
Add support for SelectInst.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29970
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 29 Aug 2006 23:38:20 +0000 (23:38 +0000)]
Code cleanups, no functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29969
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 29 Aug 2006 23:18:15 +0000 (23:18 +0000)]
Teach the coallescer to coallesce live intervals joined by an arbitrary
number of copies, potentially defining live ranges that appear to have
differing value numbers that become identical when coallsced. Among other
things, this fixes CodeGen/X86/shift-coalesce.ll and PR687.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29968
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 29 Aug 2006 23:09:59 +0000 (23:09 +0000)]
new testcase for pr687
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29967
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 29 Aug 2006 22:29:16 +0000 (22:29 +0000)]
Do not rely on std::sort and std::erase to get list of unique
exit blocks. The output is dependent on addresses of basic block.
Add and use Loop::getUniqueExitBlocks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29966
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 29 Aug 2006 22:14:48 +0000 (22:14 +0000)]
Minor asm fix.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29965
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 29 Aug 2006 22:01:39 +0000 (22:01 +0000)]
This is also a 32-bit only test. x86-64 would pass fp parameters through XMM registers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29964
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 29 Aug 2006 21:49:58 +0000 (21:49 +0000)]
Fix test case so it passes on x86-64.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29963
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 29 Aug 2006 21:42:58 +0000 (21:42 +0000)]
Remove dead code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29962
91177308-0d34-0410-b5e6-
96231b3b80d8