Chris Lattner [Thu, 16 Mar 2006 19:50:01 +0000 (19:50 +0000)]
set TransformToType correctly for vector types.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26797
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 16 Mar 2006 19:42:44 +0000 (19:42 +0000)]
Add markers for the first and last vector value type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26796
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Thu, 16 Mar 2006 18:50:44 +0000 (18:50 +0000)]
Another case we could do better on.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26795
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 16 Mar 2006 18:47:51 +0000 (18:47 +0000)]
New testcase, the new CFE compiles this into insertelement instructions, the
old one crashes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26794
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 16 Mar 2006 18:25:23 +0000 (18:25 +0000)]
Save/restore VRSAVE once per function, not once per block.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26793
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Thu, 16 Mar 2006 18:15:12 +0000 (18:15 +0000)]
Typo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26792
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 16 Mar 2006 16:14:59 +0000 (16:14 +0000)]
Fix a typo Eric van Riet Paap noticed
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26791
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Thu, 16 Mar 2006 03:05:57 +0000 (03:05 +0000)]
Add a RUN: line so this test doesn't fail.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26790
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 16 Mar 2006 01:29:53 +0000 (01:29 +0000)]
add support for the bitconvert node
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26789
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 15 Mar 2006 22:19:46 +0000 (22:19 +0000)]
add support for vector->vector casts
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26788
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 15 Mar 2006 22:19:18 +0000 (22:19 +0000)]
Add a note, this code should be moved to the dag combiner.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26787
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 15 Mar 2006 19:23:40 +0000 (19:23 +0000)]
minor changes so that GCC builtin can be specified before the Intrinsic info,
add some more PPC intrinsics.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26786
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 15 Mar 2006 19:22:41 +0000 (19:22 +0000)]
Teach the strip pass to strip type names in addition to value names. This
is fallout from the type/value split in the symtab long long ago :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26785
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 15 Mar 2006 19:15:26 +0000 (19:15 +0000)]
allow the GCCBuiltinName field to be optional
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26784
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Wed, 15 Mar 2006 19:10:52 +0000 (19:10 +0000)]
Update doc to reflect changes in subprogram and block descriptors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26783
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Wed, 15 Mar 2006 19:09:58 +0000 (19:09 +0000)]
Expand subprogram and added block descriptor.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26782
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Wed, 15 Mar 2006 19:03:16 +0000 (19:03 +0000)]
no heap is happening here
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26781
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Wed, 15 Mar 2006 19:02:54 +0000 (19:02 +0000)]
better check
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26780
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Wed, 15 Mar 2006 18:32:18 +0000 (18:32 +0000)]
remove qsort for now
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26779
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 15 Mar 2006 18:05:13 +0000 (18:05 +0000)]
Also requires -mattr=-sse3
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26778
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Wed, 15 Mar 2006 05:43:41 +0000 (05:43 +0000)]
allow field sensitivity to be a tunable parameter
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26777
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Wed, 15 Mar 2006 05:25:05 +0000 (05:25 +0000)]
Update scheduling info for vrsave instruction
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26776
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Wed, 15 Mar 2006 04:04:21 +0000 (04:04 +0000)]
Handle one offset with growth case seen in povray. Namely, if we have an offset,
and the offset lands at a field boundary in the old type, construct a new type,
copying the fields masked by the offset from the old type, and unify with that.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26775
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Wed, 15 Mar 2006 03:43:59 +0000 (03:43 +0000)]
improve mem intrinsics and add a few things povray uses
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26774
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Wed, 15 Mar 2006 02:51:05 +0000 (02:51 +0000)]
Fix VC++ build error.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26773
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 15 Mar 2006 02:05:38 +0000 (02:05 +0000)]
remove typo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26772
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 15 Mar 2006 01:55:21 +0000 (01:55 +0000)]
Autogenerate a table of intrinsic names, so we can map from intrinsic ID to
LLVM intrinsic function name.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26771
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 15 Mar 2006 01:33:26 +0000 (01:33 +0000)]
Autogenerate code to map from GCC builtin to LLVM intrinsic.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26770
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 15 Mar 2006 01:32:36 +0000 (01:32 +0000)]
Set TargetPrefix on target-specific intrinsics. That way, in theory, different
targets could have different implemenations of a __builtin_foo gcc intrinsic.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26769
91177308-0d34-0410-b5e6-
96231b3b80d8
Robert Bocchino [Tue, 14 Mar 2006 23:22:57 +0000 (23:22 +0000)]
Fixed a typo in the vsetfp examples.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26768
91177308-0d34-0410-b5e6-
96231b3b80d8
Robert Bocchino [Tue, 14 Mar 2006 20:55:28 +0000 (20:55 +0000)]
Split the 'vset' instruction into two instructions, 'vsetint' and
'vsetfp', to reflect the fact that the semantics are different for
integer and fp values.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26767
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 14 Mar 2006 20:02:51 +0000 (20:02 +0000)]
Update this to match the documentation in the GC doc and to match actual
practice.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26766
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 14 Mar 2006 20:00:20 +0000 (20:00 +0000)]
Fix the gcread/gcwrite intrinsic specifications, fixing
CodeGen/Generic/GC/alloc_loop.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26765
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 14 Mar 2006 19:49:57 +0000 (19:49 +0000)]
Bugfix, unbreaking CodeGen/PowerPC/cttz.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26764
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 14 Mar 2006 19:41:45 +0000 (19:41 +0000)]
Fix an et-forest memory leak. Patch by Daniel Berlin.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26763
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 14 Mar 2006 19:31:24 +0000 (19:31 +0000)]
add a note
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26762
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Tue, 14 Mar 2006 18:50:50 +0000 (18:50 +0000)]
Reflect the fact that empty strings can be expressed as null.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26761
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Tue, 14 Mar 2006 18:37:57 +0000 (18:37 +0000)]
1. Use null for serialized empty strings.
2. Allow for user defined debug descriptors.
3. Allow for user augmented fields on debug descriptors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26760
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Tue, 14 Mar 2006 18:08:46 +0000 (18:08 +0000)]
Bring debugging information up to date.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26759
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 14 Mar 2006 17:56:49 +0000 (17:56 +0000)]
Fix an off by one error that caused PPC LLC failures last night.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26758
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 14 Mar 2006 16:04:29 +0000 (16:04 +0000)]
Implement a FIXME, recusively reassociating
A*A*B + A*A*C --> A*(A*B+A*C) --> A*(A*(B+C))
This implements Reassociate/mul-factor3.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26757
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 14 Mar 2006 08:13:09 +0000 (08:13 +0000)]
new testcase from a FIXME in the code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26756
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 14 Mar 2006 07:11:11 +0000 (07:11 +0000)]
extract some code into a method, no functionality change
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26755
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 14 Mar 2006 06:57:34 +0000 (06:57 +0000)]
transformation implemented
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26754
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 14 Mar 2006 06:55:18 +0000 (06:55 +0000)]
Promote shifts by a constant to multiplies so that we can reassociate
(x<<1)+(y<<1) -> (X+Y)<<1. This implements
Transforms/Reassociate/shift-factor.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26753
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 14 Mar 2006 06:54:32 +0000 (06:54 +0000)]
Test that we can reassociate (x<<1)+(y<<1) -> (X+Y)<<1.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26752
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Tue, 14 Mar 2006 06:08:05 +0000 (06:08 +0000)]
Allow a sequence of digits at the end of the directory name when trying to
determine the top directory. This allows the tool to find the correct top
directory when you have something like:
/x/llvm
/x/llvm2
/x/llvm3
Previously the scripts would always find /x/llvm even if you were in the
llvm2 or llvm3 directory because the pattern didn't allow the digits at
the end of the path.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26751
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Tue, 14 Mar 2006 06:05:05 +0000 (06:05 +0000)]
Change llvm.cs.uiuc.edu -> llvm.org
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26750
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Tue, 14 Mar 2006 05:59:52 +0000 (05:59 +0000)]
Add a newline at the end to avoid gcc warnings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26749
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Tue, 14 Mar 2006 05:54:52 +0000 (05:54 +0000)]
Convert llvm.cs.uiuc.edu -> llvm.org
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26748
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Tue, 14 Mar 2006 05:42:07 +0000 (05:42 +0000)]
Change docs for llvm.cs.uiuc.edu -> llvm.org
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26747
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Tue, 14 Mar 2006 05:39:39 +0000 (05:39 +0000)]
Changes docs for llvm.cs.uiuc.edu -> llvm.org
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26746
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Tue, 14 Mar 2006 02:00:35 +0000 (02:00 +0000)]
1. Handle removal of all arguments for a morphed intrinsic.
2. Remove the declaration of llvm.dbg.declare.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26745
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Tue, 14 Mar 2006 01:53:11 +0000 (01:53 +0000)]
Remove the use of llvm.dbg.declare.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26744
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 13 Mar 2006 23:56:51 +0000 (23:56 +0000)]
PPC LSR pass should use target lowering hooks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26743
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 13 Mar 2006 23:20:37 +0000 (23:20 +0000)]
Added getTargetLowering() to TargetMachine. Refactored targets to support this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26742
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 13 Mar 2006 23:19:10 +0000 (23:19 +0000)]
Update
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26741
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 13 Mar 2006 23:18:16 +0000 (23:18 +0000)]
Add LSR hooks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26740
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 13 Mar 2006 23:17:42 +0000 (23:17 +0000)]
Added getTargetLowering() - returns DAG lowering info.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26739
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 13 Mar 2006 23:14:23 +0000 (23:14 +0000)]
Added target lowering hooks which LSR consults to make more intelligent
transformation decisions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26738
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Mar 2006 23:09:05 +0000 (23:09 +0000)]
Handle builtins that directly correspond to GCC builtins.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26737
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Mar 2006 23:08:44 +0000 (23:08 +0000)]
emit a mapping from LLVM intrinsic -> GCC builtins.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26736
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Mar 2006 22:38:57 +0000 (22:38 +0000)]
Verify that packed type operands have the right size and base type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26735
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Mar 2006 22:38:32 +0000 (22:38 +0000)]
Add a first ppc altivec intrinsic. Add packed type support.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26734
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Mar 2006 21:52:10 +0000 (21:52 +0000)]
For functions that use vector registers, save VRSAVE, mark used
registers, and update it on entry to each function, then restore it on exit.
This compiles:
void func(vfloat *a, vfloat *b, vfloat *c) {
*a = *b * *c + *c;
}
to this:
_func:
mfspr r2, 256
oris r6, r2, 49152
mtspr 256, r6
lvx v0, 0, r5
lvx v1, 0, r4
vmaddfp v0, v1, v0, v0
stvx v0, 0, r3
mtspr 256, r2
blr
GCC produces this (which has additional stack accesses):
_func:
mfspr r0,256
stw r0,-4(r1)
oris r0,r0,0xc000
mtspr 256,r0
lvx v0,0,r5
lvx v1,0,r4
lwz r12,-4(r1)
vmaddfp v0,v0,v1,v0
stvx v0,0,r3
mtspr 256,r12
blr
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26733
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 13 Mar 2006 21:22:43 +0000 (21:22 +0000)]
Optimizing to calloc() to malloc() + memset() can be bad on some platforms.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26732
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Mar 2006 18:37:30 +0000 (18:37 +0000)]
make sure dead token factor nodes are removed by the dag combiner.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26731
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Mon, 13 Mar 2006 17:57:31 +0000 (17:57 +0000)]
Bring makefile back into compliance with standard by using
$(Echo) instead of @echo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26730
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Mon, 13 Mar 2006 13:07:37 +0000 (13:07 +0000)]
Handle the removal of the debug chain.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26729
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Mar 2006 06:52:22 +0000 (06:52 +0000)]
remove two implemented items
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26728
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Mar 2006 06:51:27 +0000 (06:51 +0000)]
Fold X+Y -> X|Y when safe. This implements:
Regression/CodeGen/PowerPC/and_add.ll
a case that occurs with dynamic allocas of constant size.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26727
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Mar 2006 06:50:47 +0000 (06:50 +0000)]
new testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26726
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Mar 2006 06:42:16 +0000 (06:42 +0000)]
I can't convince myself that this is safe, remove the recursive call.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26725
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Mar 2006 06:26:26 +0000 (06:26 +0000)]
add a couple of missing folds
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26724
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Mar 2006 06:08:38 +0000 (06:08 +0000)]
For targets with FABS/FNEG support, lower copysign to an integer load,
a select and FABS/FNEG.
This speeds up a trivial (aka stupid) copysign benchmark I wrote from 6.73s
to 2.64s, woo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26723
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Mar 2006 05:23:59 +0000 (05:23 +0000)]
Fix a couple of bugs that broke the alpha tester build
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26722
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Mar 2006 05:20:04 +0000 (05:20 +0000)]
Handle cracked instructions in dispatch group formation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26721
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 13 Mar 2006 05:15:10 +0000 (05:15 +0000)]
Mark instructions that are cracked by the PPC970 decoder as such.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26720
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 12 Mar 2006 09:13:49 +0000 (09:13 +0000)]
Several big changes:
1. Use flags on the instructions in the .td file to indicate the PPC970 unit
type instead of a table in the .cpp file. Much cleaner.
2. Change the hazard recognizer to build d-groups according to the actual
algorithm used, not my flawed understanding of it.
3. Model "must be in the first slot" and "must be the only instr in a group"
accurately.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26719
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 12 Mar 2006 09:01:41 +0000 (09:01 +0000)]
Don't advance the hazard recognizer when there are no hazards and no instructions
to be emitted.
Don't add one to the latency of a completed instruction if the latency of the
op is 0.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26718
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 12 Mar 2006 03:52:09 +0000 (03:52 +0000)]
Chain operands aren't real uses: they don't require the full latency of the
predecessor to finish before they can start.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26717
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 12 Mar 2006 00:38:57 +0000 (00:38 +0000)]
As a pending queue data structure to keep track of instructions whose
operands have all issued, but whose results are not yet available. This
allows us to compile:
int G;
int test(int A, int B, int* P) {
return (G+A)*(B+1);
}
to:
_test:
lis r2, ha16(L_G$non_lazy_ptr)
addi r4, r4, 1
lwz r2, lo16(L_G$non_lazy_ptr)(r2)
lwz r2, 0(r2)
add r2, r2, r3
mullw r3, r2, r4
blr
instead of this, which has a stall between the lis/lwz:
_test:
lis r2, ha16(L_G$non_lazy_ptr)
lwz r2, lo16(L_G$non_lazy_ptr)(r2)
addi r4, r4, 1
lwz r2, 0(r2)
add r2, r2, r3
mullw r3, r2, r4
blr
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26716
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 12 Mar 2006 00:04:28 +0000 (00:04 +0000)]
Mark llvm.stacksave as only reading memory, this fixes
Regression/Transforms/InstCombine/stacksaverestore.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26715
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 11 Mar 2006 22:44:37 +0000 (22:44 +0000)]
rename priorityqueue -> availablequeue. When a node is scheduled, remember
which cycle it lands on.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26714
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 11 Mar 2006 22:34:41 +0000 (22:34 +0000)]
Make CurrCycle a local var instead of an instance var
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26713
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 11 Mar 2006 22:28:35 +0000 (22:28 +0000)]
Move some methods around so that BU specific code is together, TD specific code
is together, and direction independent code is together.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26712
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 11 Mar 2006 22:24:20 +0000 (22:24 +0000)]
merge preds/chainpreds -> preds set
merge succs/chainsuccs -> succs set
This has no functionality change, simplifies the code, and reduces the size
of sunits.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26711
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 11 Mar 2006 21:49:49 +0000 (21:49 +0000)]
blr is a branch too
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26710
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 11 Mar 2006 20:20:40 +0000 (20:20 +0000)]
add an example
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26709
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 11 Mar 2006 20:17:08 +0000 (20:17 +0000)]
add a note
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26708
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Sat, 11 Mar 2006 02:20:46 +0000 (02:20 +0000)]
Fix PR681 by using the standard Lengauer and Tarjan algorithm for dominator
set construction, rather than intersecting various std::sets. This reduces
the memory usage for the testcase in PR681 from 496 to 26MB of ram on my
darwin system, and reduces the runtime from 32.8 to 0.8 seconds on a
2.5GHz G5. This also enables future code sharing between Dom and PostDom
now that they share near-identical implementations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26707
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 11 Mar 2006 00:20:47 +0000 (00:20 +0000)]
fix pasto in generate assertion msg
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26706
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 11 Mar 2006 00:13:10 +0000 (00:13 +0000)]
Doh!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26705
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 10 Mar 2006 23:52:03 +0000 (23:52 +0000)]
Added a parameter to control whether Constant::getStringValue() would chop
off the result string at the first null terminator.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26704
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 10 Mar 2006 23:14:22 +0000 (23:14 +0000)]
remove some dead code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26703
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 10 Mar 2006 22:49:05 +0000 (22:49 +0000)]
remove ShouldEmitDebugFunctions, a hack to support llvm-db via the jit
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26702
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 10 Mar 2006 22:48:19 +0000 (22:48 +0000)]
scrape out bits of llvm-db
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26701
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 10 Mar 2006 22:39:48 +0000 (22:39 +0000)]
Remove UnixLocalInferiorProcess: debugging via the JIT isn't a good idea.
Perhaps llvm-db will turn into a read debugger someday.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26700
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 10 Mar 2006 22:32:18 +0000 (22:32 +0000)]
Simplify this testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26699
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 10 Mar 2006 21:01:34 +0000 (21:01 +0000)]
reorder these to make it work with static libraries
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26698
91177308-0d34-0410-b5e6-
96231b3b80d8