1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-30 15:32:52 +01:00
Commit Graph

27675 Commits

Author SHA1 Message Date
Rafael Espindola
5daebfdae0 implement load effective address similar to the alpha backend
remove lea_addri and the now unused memri addressing mode

llvm-svn: 31592
2006-11-09 13:58:55 +00:00
Jim Laskey
c7044db565 math.h creates ambiguity
llvm-svn: 31591
2006-11-09 08:26:22 +00:00
Jim Laskey
03b3ec783d math.h for C's sake.
llvm-svn: 31590
2006-11-09 08:05:39 +00:00
Chris Lattner
ae15a1f88d 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.

llvm-svn: 31589
2006-11-09 06:24:56 +00:00
Chris Lattner
3488208b8e 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.

llvm-svn: 31588
2006-11-09 05:57:53 +00:00
Chris Lattner
71c31643ad silence warnings
llvm-svn: 31587
2006-11-09 05:18:12 +00:00
Chris Lattner
cd3c5f59e2 Teach ShrinkDemandedConstant how to handle X+C. This implements:
add.ll:test33, add.ll:test34, shift-sra.ll:test2

llvm-svn: 31586
2006-11-09 05:12:27 +00:00
Chris Lattner
337e425b69 new testcases
llvm-svn: 31585
2006-11-09 05:11:23 +00:00
Evan Cheng
6b7d127df9 getPostIndexedAddressParts change: passes in load/store instead of its loaded / stored VT.
llvm-svn: 31584
2006-11-09 04:29:46 +00:00
Evan Cheng
8743c67826 Remove M_2_ADDR_FLAG.
llvm-svn: 31583
2006-11-09 02:22:54 +00:00
Reid Spencer
872f4226e4 Don't run bugpoint if we can't find a misoptimization.
llvm-svn: 31582
2006-11-09 01:47:04 +00:00
Reid Spencer
1d8fddc5b0 Print a usage message if too few arguments to program.
llvm-svn: 31581
2006-11-09 00:50:32 +00:00
Reid Spencer
dbb1ac36fa 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.

llvm-svn: 31580
2006-11-09 00:26:17 +00:00
Tanya Lattner
54631a48fc Should be xfailed for llvmgcc3
llvm-svn: 31578
2006-11-08 23:26:16 +00:00
Tanya Lattner
a4e66e5441 Should be xfailed for llvmgcc4 and NOT *. * means all platforms regardless of what llvmgcc you use.
llvm-svn: 31577
2006-11-08 23:25:58 +00:00
Evan Cheng
019b921f3b Added indexed store node and patfrag's.
llvm-svn: 31576
2006-11-08 23:02:11 +00:00
Evan Cheng
6921c1c0a7 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).

llvm-svn: 31575
2006-11-08 23:01:03 +00:00
Reid Spencer
d3fd11fe83 Ensure we don't regress on reading version 6 bytecode.
llvm-svn: 31574
2006-11-08 21:28:30 +00:00
Reid Spencer
972e7d7995 Bump the bytecode version number to 7. Implement upgrade of version 6 and
version 6 bytecode.

llvm-svn: 31573
2006-11-08 21:27:54 +00:00
Evan Cheng
2edeb17aed Use movl+xchgl instead of pushl+popl.
llvm-svn: 31572
2006-11-08 20:35:37 +00:00
Evan Cheng
736a8eb3cd Match tblegen changes.
llvm-svn: 31571
2006-11-08 20:34:28 +00:00
Evan Cheng
42fb21c3c5 Always pass the root node to ComplexPattern isel matching function.
llvm-svn: 31570
2006-11-08 20:31:10 +00:00
Evan Cheng
fcef896f6e Match more post-indexed ops.
llvm-svn: 31569
2006-11-08 20:27:27 +00:00
Tanya Lattner
e8c4383527 Should be xfailed for llvm-gcc3.4
llvm-svn: 31568
2006-11-08 20:16:05 +00:00
Reid Spencer
cd0b4af75f Document correct opcodes for post 1.9 release.
llvm-svn: 31566
2006-11-08 20:07:40 +00:00
Reid Spencer
7c049102d0 Update the instruction opcodes for release 1.9
llvm-svn: 31565
2006-11-08 20:06:36 +00:00
Chris Lattner
d1bcd014a8 reenable factoring of GEP expressions, being more precise about the
case that it bad to do.

llvm-svn: 31563
2006-11-08 19:42:28 +00:00
Chris Lattner
77e0e67f23 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.

llvm-svn: 31562
2006-11-08 19:29:23 +00:00
Jim Laskey
28fec74f1b Remove redundant <cmath>.
llvm-svn: 31561
2006-11-08 19:16:44 +00:00
Chris Lattner
f2cd0aeced disable this factoring optzn for GEPs for now, this severely pessimizes some
loops.

llvm-svn: 31560
2006-11-08 18:49:31 +00:00
Jim Laskey
c42c7476ce Make sure <cmath> comes first
llvm-svn: 31559
2006-11-08 18:48:14 +00:00
Jim Laskey
092c00cb14 Add backup support for HUGH_VALF.
llvm-svn: 31553
2006-11-08 17:19:29 +00:00
Rafael Espindola
f7b898d497 initial implementation of addressing mode 2
TODO: fix lea_addri

llvm-svn: 31552
2006-11-08 17:07:32 +00:00
Jim Laskey
238ccb3f16 Make it work on Darwin.
llvm-svn: 31551
2006-11-08 16:38:45 +00:00
John Criswell
335eb0232a Include llvm/Support/DataTypes.h to define intptr_t.
This fixes the build on OpenBSD and potentially other systems.

llvm-svn: 31550
2006-11-08 15:04:35 +00:00
Jim Laskey
4d636f03f7 Now can re-enable debug label folding.
llvm-svn: 31549
2006-11-08 14:17:45 +00:00
Jim Laskey
8ffcf505f2 Wasn't handling case of when machine move labels were undefined.
llvm-svn: 31548
2006-11-08 14:16:39 +00:00
Devang Patel
0aa28c8146 Split FunctionPassManager_New into FunctionPassManager_New and FunctionPassManagerImpl_New.
FunctionPassManagerImpl_New implements the pass manager.
FunctionPassManager_New is the public interface.

llvm-svn: 31547
2006-11-08 10:44:40 +00:00
Devang Patel
12982590fa Split PassManager_New into PassManager_New and PassManagerImpl_New.
PassManagerImpl_New implements the pass manager.
PassManager_New is the public interface.

llvm-svn: 31546
2006-11-08 10:29:57 +00:00
Devang Patel
03dc236bdd Move BasicBlockPassManager_New, FunctionPassManager_New and
ModulePassManager_New class declarations from PassManager.h
to PassManager.cpp

llvm-svn: 31545
2006-11-08 10:05:38 +00:00
Evan Cheng
1f5c4a6c43 - 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.

llvm-svn: 31544
2006-11-08 08:30:28 +00:00
Evan Cheng
acc6a98286 Fixed a minor bug preventing some pre-indexed load / store transformation.
llvm-svn: 31543
2006-11-08 06:56:05 +00:00
Reid Spencer
da1f5b882a 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.

llvm-svn: 31542
2006-11-08 06:47:33 +00:00
Reid Spencer
907d191104 XFAIL this on Linux until Jim gets Darwin ship shape.
llvm-svn: 31541
2006-11-08 06:43:16 +00:00
Chris Lattner
5bcd28eaa8 now that we handle single mbb loops better, one branch is allowed
llvm-svn: 31540
2006-11-08 06:42:42 +00:00
Chris Lattner
d2ebf186dc regenerate
llvm-svn: 31539
2006-11-08 05:58:47 +00:00
Chris Lattner
6147da248c Fix a bug noticed by Emil Mikulic.
llvm-svn: 31538
2006-11-08 05:58:11 +00:00
Evan Cheng
e50f5e4c05 Fix a obscure post-indexed load / store dag combine bug.
llvm-svn: 31537
2006-11-08 02:38:55 +00:00
Chris Lattner
bd39c99fd1 Refactor all the addressing mode selection stuff into the isel lowering
class, where it can be used for preinc formation.

llvm-svn: 31536
2006-11-08 02:15:41 +00:00
Chris Lattner
35fb10e1a4 correct the (currently unused) pattern for lwzu.
llvm-svn: 31535
2006-11-08 02:13:12 +00:00