Evan Cheng [Fri, 10 Nov 2006 08:32:14 +0000 (08:32 +0000)]
Add implicit def / use operands to MachineInstr.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31632
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 10 Nov 2006 08:28:11 +0000 (08:28 +0000)]
When forming a pre-indexed store, make sure ptr isn't the same or is a pred of value being stored. It would cause a cycle.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31631
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Fri, 10 Nov 2006 06:59:53 +0000 (06:59 +0000)]
Adding target triple to test
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31630
91177308-0d34-0410-b5e6-
96231b3b80d8
Tanya Lattner [Fri, 10 Nov 2006 04:53:50 +0000 (04:53 +0000)]
xfail for llvmgcc3
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31629
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 10 Nov 2006 04:41:34 +0000 (04:41 +0000)]
commentate
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31627
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 10 Nov 2006 02:08:47 +0000 (02:08 +0000)]
add an initial cut at preinc loads for ppc32. This is broken for ppc64
(because the 64-bit reg target versions aren't implemented yet), doesn't
support r+r addr modes, and doesn't handle stores, but it works otherwise. :)
This is disabled unless -enable-ppc-preinc is passed to llc for now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31621
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 10 Nov 2006 02:04:52 +0000 (02:04 +0000)]
make this test more interesting
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31619
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 10 Nov 2006 02:01:40 +0000 (02:01 +0000)]
allow ptr_rc to explicitly appear in an instructions operand list, it doesn't
have to be a subpart of a complex operand.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31618
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 10 Nov 2006 01:33:53 +0000 (01:33 +0000)]
add note about ugly codegen with preinc
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31617
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 10 Nov 2006 01:28:43 +0000 (01:28 +0000)]
Use TargetInstrInfo::getNumOperands() instead of MachineInstr::getNumOperands(). In preparation for implicit reg def/use changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31616
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Fri, 10 Nov 2006 00:48:11 +0000 (00:48 +0000)]
Fixing PR990: http://llvm.org/PR990.
This should unbreak csretcc on Linux & mingw targets. Several tests from
llvm-test should be also restored (fftbench, bigfib).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31613
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 10 Nov 2006 00:23:26 +0000 (00:23 +0000)]
add a note about viterbi
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31612
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 9 Nov 2006 23:36:08 +0000 (23:36 +0000)]
second patch to fix PR992/993.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31610
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 9 Nov 2006 23:35:01 +0000 (23:35 +0000)]
new testcases for PR992/993
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31609
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 9 Nov 2006 23:17:45 +0000 (23:17 +0000)]
Minimal patch to fix PR992/PR993
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31608
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Thu, 9 Nov 2006 23:03:26 +0000 (23:03 +0000)]
Post-review changes on conversion instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31607
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Thu, 9 Nov 2006 21:48:10 +0000 (21:48 +0000)]
Fix runaway <tt> element and section ordering.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31606
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Thu, 9 Nov 2006 21:42:14 +0000 (21:42 +0000)]
Remove futurisms that won't be in our future.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31605
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Thu, 9 Nov 2006 21:18:01 +0000 (21:18 +0000)]
One more time for indentation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31604
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Thu, 9 Nov 2006 21:15:49 +0000 (21:15 +0000)]
Fix indentation problem starting at GEP.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31603
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 9 Nov 2006 19:32:13 +0000 (19:32 +0000)]
if lazy compilation is disabled, print an error message and abort if
lazy compilation is ever attempted
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31602
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 9 Nov 2006 19:31:15 +0000 (19:31 +0000)]
init ivar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31601
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 9 Nov 2006 19:30:47 +0000 (19:30 +0000)]
allow clients to indicate that they never want lazy compilation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31600
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 9 Nov 2006 19:11:50 +0000 (19:11 +0000)]
PPC supports i32 / i64 pre-inc load / store.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31599
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 9 Nov 2006 19:10:46 +0000 (19:10 +0000)]
Don't attempt expensive pre-/post- indexed dag combine if target does not support them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31598
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 9 Nov 2006 18:56:43 +0000 (18:56 +0000)]
Add a mechanism to specify whether a target supports a particular indexed load / store.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31597
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 9 Nov 2006 18:44:21 +0000 (18:44 +0000)]
Rename ISD::MemOpAddrMode to ISD::MemIndexedMode
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31596
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 9 Nov 2006 17:55:04 +0000 (17:55 +0000)]
Rename ISD::MemOpAddrMode to ISD::MemIndexedMode
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31595
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Thu, 9 Nov 2006 16:32:26 +0000 (16:32 +0000)]
Allows debugging llc self hosted.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31594
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Thu, 9 Nov 2006 14:52:14 +0000 (14:52 +0000)]
Merging dwarf info to a single compile unit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31593
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 9 Nov 2006 13:58:55 +0000 (13:58 +0000)]
implement load effective address similar to the alpha backend
remove lea_addri and the now unused memri addressing mode
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31592
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Thu, 9 Nov 2006 08:26:22 +0000 (08:26 +0000)]
math.h creates ambiguity
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31591
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Thu, 9 Nov 2006 08:05:39 +0000 (08:05 +0000)]
math.h for C's sake.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31590
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 9 Nov 2006 06:24:56 +0000 (06:24 +0000)]
completely revert patrick's enhancement to bugpoint. Though it makes bugpoint
speed up, it sometimes makes it crash on complex bc files, which isn't very nice.
With this, bugpoint can reduce the 176.gcc failure.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31589
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 9 Nov 2006 05:57:53 +0000 (05:57 +0000)]
add a new bugpoint mode -llc-safe. This uses LLC for both halves of a
miscompilation. This is useful for working around GCC+CBE bugs or for handling
programs that CBE doesn't support (e.g. inline asm) when searching for
optimizer bugs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31588
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 9 Nov 2006 05:18:12 +0000 (05:18 +0000)]
silence warnings
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31587
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 9 Nov 2006 05:12:27 +0000 (05:12 +0000)]
Teach ShrinkDemandedConstant how to handle X+C. This implements:
add.ll:test33, add.ll:test34, shift-sra.ll:test2
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31586
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 9 Nov 2006 05:11:23 +0000 (05:11 +0000)]
new testcases
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31585
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 9 Nov 2006 04:29:46 +0000 (04:29 +0000)]
getPostIndexedAddressParts change: passes in load/store instead of its loaded / stored VT.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31584
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 9 Nov 2006 02:22:54 +0000 (02:22 +0000)]
Remove M_2_ADDR_FLAG.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31583
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Thu, 9 Nov 2006 01:47:04 +0000 (01:47 +0000)]
Don't run bugpoint if we can't find a misoptimization.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31582
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Thu, 9 Nov 2006 00:50:32 +0000 (00:50 +0000)]
Print a usage message if too few arguments to program.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31581
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Thu, 9 Nov 2006 00:26:17 +0000 (00:26 +0000)]
Add a utility script to find a mis-optimization problem. This sometimes
helps when bugpoint can't find the problem directly because it needs the
set of optimizations that cause the program to fail.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31580
91177308-0d34-0410-b5e6-
96231b3b80d8
Tanya Lattner [Wed, 8 Nov 2006 23:26:16 +0000 (23:26 +0000)]
Should be xfailed for llvmgcc3
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31578
91177308-0d34-0410-b5e6-
96231b3b80d8
Tanya Lattner [Wed, 8 Nov 2006 23:25:58 +0000 (23:25 +0000)]
Should be xfailed for llvmgcc4 and NOT *. * means all platforms regardless of what llvmgcc you use.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31577
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 8 Nov 2006 23:02:11 +0000 (23:02 +0000)]
Added indexed store node and patfrag's.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31576
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 8 Nov 2006 23:01:03 +0000 (23:01 +0000)]
Divide select methods into groups by SelectionDAG node opcodes (ISD::ADD,
X86ISD::CMP, etc.) instead of SDNode names (add, x86cmp, etc). We now allow
multiple SDNodes to map to the same SelectionDAG node (e.g. store, indexed
store).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31575
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Wed, 8 Nov 2006 21:28:30 +0000 (21:28 +0000)]
Ensure we don't regress on reading version 6 bytecode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31574
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Wed, 8 Nov 2006 21:27:54 +0000 (21:27 +0000)]
Bump the bytecode version number to 7. Implement upgrade of version 6 and
version 6 bytecode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31573
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 8 Nov 2006 20:35:37 +0000 (20:35 +0000)]
Use movl+xchgl instead of pushl+popl.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31572
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 8 Nov 2006 20:34:28 +0000 (20:34 +0000)]
Match tblegen changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31571
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 8 Nov 2006 20:31:10 +0000 (20:31 +0000)]
Always pass the root node to ComplexPattern isel matching function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31570
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 8 Nov 2006 20:27:27 +0000 (20:27 +0000)]
Match more post-indexed ops.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31569
91177308-0d34-0410-b5e6-
96231b3b80d8
Tanya Lattner [Wed, 8 Nov 2006 20:16:05 +0000 (20:16 +0000)]
Should be xfailed for llvm-gcc3.4
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31568
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Wed, 8 Nov 2006 20:07:40 +0000 (20:07 +0000)]
Document correct opcodes for post 1.9 release.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31566
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Wed, 8 Nov 2006 20:06:36 +0000 (20:06 +0000)]
Update the instruction opcodes for release 1.9
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31565
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 8 Nov 2006 19:42:28 +0000 (19:42 +0000)]
reenable factoring of GEP expressions, being more precise about the
case that it bad to do.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31563
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 8 Nov 2006 19:29:23 +0000 (19:29 +0000)]
make this code more efficient by not creating a phi node we are just going to
delete in the first place. This also makes it simpler.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31562
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Wed, 8 Nov 2006 19:16:44 +0000 (19:16 +0000)]
Remove redundant <cmath>.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31561
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 8 Nov 2006 18:49:31 +0000 (18:49 +0000)]
disable this factoring optzn for GEPs for now, this severely pessimizes some
loops.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31560
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Wed, 8 Nov 2006 18:48:14 +0000 (18:48 +0000)]
Make sure <cmath> comes first
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31559
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Wed, 8 Nov 2006 17:19:29 +0000 (17:19 +0000)]
Add backup support for HUGH_VALF.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31553
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 8 Nov 2006 17:07:32 +0000 (17:07 +0000)]
initial implementation of addressing mode 2
TODO: fix lea_addri
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31552
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Wed, 8 Nov 2006 16:38:45 +0000 (16:38 +0000)]
Make it work on Darwin.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31551
91177308-0d34-0410-b5e6-
96231b3b80d8
John Criswell [Wed, 8 Nov 2006 15:04:35 +0000 (15:04 +0000)]
Include llvm/Support/DataTypes.h to define intptr_t.
This fixes the build on OpenBSD and potentially other systems.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31550
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Wed, 8 Nov 2006 14:17:45 +0000 (14:17 +0000)]
Now can re-enable debug label folding.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31549
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Wed, 8 Nov 2006 14:16:39 +0000 (14:16 +0000)]
Wasn't handling case of when machine move labels were undefined.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31548
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 8 Nov 2006 10:44:40 +0000 (10:44 +0000)]
Split FunctionPassManager_New into FunctionPassManager_New and FunctionPassManagerImpl_New.
FunctionPassManagerImpl_New implements the pass manager.
FunctionPassManager_New is the public interface.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31547
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 8 Nov 2006 10:29:57 +0000 (10:29 +0000)]
Split PassManager_New into PassManager_New and PassManagerImpl_New.
PassManagerImpl_New implements the pass manager.
PassManager_New is the public interface.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31546
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 8 Nov 2006 10:05:38 +0000 (10:05 +0000)]
Move BasicBlockPassManager_New, FunctionPassManager_New and
ModulePassManager_New class declarations from PassManager.h
to PassManager.cpp
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31545
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 8 Nov 2006 08:30:28 +0000 (08:30 +0000)]
- When performing pre-/post- indexed load/store transformation, do not worry
about whether the new base ptr would be live below the load/store. Let two
address pass split it back to non-indexed ops.
- Minor tweaks / fixes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31544
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 8 Nov 2006 06:56:05 +0000 (06:56 +0000)]
Fixed a minor bug preventing some pre-indexed load / store transformation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31543
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Wed, 8 Nov 2006 06:47:33 +0000 (06:47 +0000)]
For PR950:
This patch converts the old SHR instruction into two instructions,
AShr (Arithmetic) and LShr (Logical). The Shr instructions now are not
dependent on the sign of their operands.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31542
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Wed, 8 Nov 2006 06:43:16 +0000 (06:43 +0000)]
XFAIL this on Linux until Jim gets Darwin ship shape.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31541
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 8 Nov 2006 06:42:42 +0000 (06:42 +0000)]
now that we handle single mbb loops better, one branch is allowed
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31540
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 8 Nov 2006 05:58:47 +0000 (05:58 +0000)]
regenerate
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31539
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 8 Nov 2006 05:58:11 +0000 (05:58 +0000)]
Fix a bug noticed by Emil Mikulic.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31538
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 8 Nov 2006 02:38:55 +0000 (02:38 +0000)]
Fix a obscure post-indexed load / store dag combine bug.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31537
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 8 Nov 2006 02:15:41 +0000 (02:15 +0000)]
Refactor all the addressing mode selection stuff into the isel lowering
class, where it can be used for preinc formation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31536
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 8 Nov 2006 02:13:12 +0000 (02:13 +0000)]
correct the (currently unused) pattern for lwzu.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31535
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 8 Nov 2006 01:44:35 +0000 (01:44 +0000)]
preincrement case we miss. xfail until we catch it
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31534
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 8 Nov 2006 01:31:28 +0000 (01:31 +0000)]
Beautify.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31533
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Wed, 8 Nov 2006 01:18:52 +0000 (01:18 +0000)]
Fix the section headings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31532
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Wed, 8 Nov 2006 01:11:31 +0000 (01:11 +0000)]
For PR950:
Early commit of the documentation for new conversion instructions for
easier review.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31531
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 8 Nov 2006 01:03:21 +0000 (01:03 +0000)]
optimize single MBB loops better. In particular, produce:
LBB1_57: #bb207.i
movl 72(%esp), %ecx
movb (%ecx,%eax), %cl
movl 80(%esp), %edx
movb %cl, 1(%edx,%eax)
incl %eax
cmpl $143, %eax
jne LBB1_57 #bb207.i
jmp LBB1_64 #cond_next255.i
intead of:
LBB1_57: #bb207.i
movl 72(%esp), %ecx
movb (%ecx,%eax), %cl
movl 80(%esp), %edx
movb %cl, 1(%edx,%eax)
incl %eax
cmpl $143, %eax
je LBB1_64 #cond_next255.i
jmp LBB1_57 #bb207.i
This eliminates a branch per iteration of the loop. This hurted PPC
particularly, because the extra branch meant another dispatch group for each
iteration of the loop.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31530
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 8 Nov 2006 00:19:31 +0000 (00:19 +0000)]
Beautify.
Clarify comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31529
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 7 Nov 2006 22:56:50 +0000 (22:56 +0000)]
Update new pass managers to use PassManagerAnalysisHelper API.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31526
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 7 Nov 2006 22:44:55 +0000 (22:44 +0000)]
Derive new pass managers from PassManagerAnalysisHelper.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31525
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 7 Nov 2006 22:42:47 +0000 (22:42 +0000)]
scalarrepl should not split the two elements of the vsiidx array:
int func(vFloat v0, vFloat v1) {
int ii;
vSInt32 vsiidx[2];
vsiidx[0] = _mm_cvttps_epi32(v0);
vsiidx[1] = _mm_cvttps_epi32(v1);
ii = ((int *) vsiidx)[4];
return ii;
}
This fixes Transforms/ScalarRepl/2006-11-07-InvalidArrayPromote.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31524
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 7 Nov 2006 22:42:29 +0000 (22:42 +0000)]
scalarrepl should not split the two elements of the vsiidx array:
int func(vFloat v0, vFloat v1) {
int ii;
vSInt32 vsiidx[2];
vsiidx[0] = _mm_cvttps_epi32(v0);
vsiidx[1] = _mm_cvttps_epi32(v1);
ii = ((int *) vsiidx)[4];
return ii;
}
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31523
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 7 Nov 2006 22:35:17 +0000 (22:35 +0000)]
Introduce PassManagerAnalysisHelper.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31522
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 7 Nov 2006 22:23:34 +0000 (22:23 +0000)]
Add PassManager_New.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31521
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 7 Nov 2006 22:18:14 +0000 (22:18 +0000)]
New test case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31520
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 7 Nov 2006 22:14:24 +0000 (22:14 +0000)]
Fixed a bug which causes x86 be to incorrectly match
shuffle v, undef, <2, ?, 3, ?>
to movhlps
It should match to unpckhps instead.
Added proper matching code for
shuffle v, undef, <2, 3, 2, 3>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31519
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 7 Nov 2006 22:04:53 +0000 (22:04 +0000)]
Fix comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31518
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 7 Nov 2006 22:03:15 +0000 (22:03 +0000)]
Add ModulePassManager_New.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31517
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Tue, 7 Nov 2006 21:58:55 +0000 (21:58 +0000)]
Accidently reran commit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31516
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 7 Nov 2006 21:49:50 +0000 (21:49 +0000)]
Add FunctionPassManager_New.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31515
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Tue, 7 Nov 2006 21:37:31 +0000 (21:37 +0000)]
Missed a label map, reverting till covered.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31514
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 7 Nov 2006 21:31:57 +0000 (21:31 +0000)]
Add BasicBlockPassManager_New.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31513
91177308-0d34-0410-b5e6-
96231b3b80d8