1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-29 23:12:55 +01:00
Commit Graph

42635 Commits

Author SHA1 Message Date
Dan Gohman
89a6126c1c Fix debug printing of flagged SDNodes in SUnits so that they
print in the correct order.

llvm-svn: 59567
2008-11-19 00:04:44 +00:00
Evan Cheng
997ba49e23 Make the same change to RegScavenger::backward.
llvm-svn: 59566
2008-11-18 23:54:01 +00:00
Oscar Fuentes
5373c4c527 CMake: Option for enabling/disabling threads.
llvm-svn: 59565
2008-11-18 23:45:21 +00:00
Bill Wendling
c795ca8627 Verify that the second parameter of the stacprotector intrinsic is an alloca
instruction.

llvm-svn: 59563
2008-11-18 23:09:31 +00:00
Evan Cheng
91d6c38321 We also need to keep the operand index for two address check.
llvm-svn: 59562
2008-11-18 22:56:19 +00:00
Evan Cheng
145b3db050 Register scavenger should process early clobber defs first. A dead early clobber def should not interfere with a normal def which happens one slot later.
llvm-svn: 59559
2008-11-18 22:28:38 +00:00
Evan Cheng
fcba3cab0b Fix indentation.
llvm-svn: 59558
2008-11-18 22:27:13 +00:00
Bill Wendling
99744090d6 Documentation for the llvm.stackprotector intrinsic.
llvm-svn: 59557
2008-11-18 22:10:53 +00:00
Devang Patel
233728e8c3 Add new helper pass that strips all symbol names except debugging information.
This pass makes it easier to test wheter debugging info. influences optimization passes or not.

llvm-svn: 59552
2008-11-18 21:34:39 +00:00
Dan Gohman
e5420a0ae9 Don't set neverHasSideEffects on x86's divide instructions, since
they trap on divide-by-zero, and this side effect is otherwise
unmodeled.

llvm-svn: 59551
2008-11-18 21:29:14 +00:00
Dan Gohman
6e32075485 Tidy up ScheduleNodeBottomUp methods, and make them more
consistent with ScheduleNodeTopDown methods.

llvm-svn: 59550
2008-11-18 21:22:20 +00:00
Dan Gohman
ce059cf482 Update a comment to reflect the current code.
llvm-svn: 59549
2008-11-18 21:14:44 +00:00
Duncan Sands
ef0c6c845c Remove integer promotion support for FP_EXTEND
and FP_ROUND.  Not sure what these were doing
here - probably they were sometimes (wrongly)
created with integer operands somewhere that
has since been fixed.

llvm-svn: 59548
2008-11-18 21:13:59 +00:00
Devang Patel
0728a7d7e5 Remove even more llvm.dbg variables.
Remove all dead globals from llvm.metadata.
Ignore linkonce linkage for selected llvm.dbg values.

llvm-svn: 59547
2008-11-18 21:13:41 +00:00
Oscar Fuentes
d46a90dbdb CMake: Remove HAVE_LT_DLOPEN from config.h.cmake because it was
removed from config.h.in.

llvm-svn: 59546
2008-11-18 21:12:01 +00:00
Duncan Sands
c7ea927666 Simplify code using helper routines. There is not
supposed to be any functionality change.

llvm-svn: 59545
2008-11-18 20:56:22 +00:00
Owen Anderson
57a8a95293 Fix a bug introduced by my previous patch. With this change, SPEC is now clean with prealloc splitting enabled.
llvm-svn: 59544
2008-11-18 20:53:59 +00:00
Dan Gohman
04e99d0f3f Add more const qualifiers. This fixes build breakage from r59540.
llvm-svn: 59542
2008-11-18 19:49:32 +00:00
Dan Gohman
5926405b4a Make some methods const.
llvm-svn: 59540
2008-11-18 19:04:29 +00:00
Devang Patel
d8981479c2 Initialize MallocFunc and FreeFunc properly.
llvm-svn: 59538
2008-11-18 18:43:07 +00:00
Dan Gohman
909692c3cd Whitespace cleanups.
llvm-svn: 59532
2008-11-18 17:05:42 +00:00
Duncan Sands
66375b6ea0 LegalizeTypes support for splitting and scalarizing
SCALAR_TO_VECTOR.  I didn't add the testcase, because
once llc gets past scalar-to-vector it hits a SPU target
lowering bug and explodes.

llvm-svn: 59530
2008-11-18 16:40:48 +00:00
Nick Lewycky
c573f70ae4 Add a utility function that detects whether a loop is guaranteed to be finite.
Use it to safely handle less-than-or-equals-to exit conditions in loops. These
also occur when the loop exit branch is exit on true because SCEV inverses the
icmp predicate.

Use it again to handle non-zero strides, but only with an unsigned comparison
in the exit condition.

llvm-svn: 59528
2008-11-18 15:10:54 +00:00
Bill Wendling
3460a79979 Rename stackprotector_create intrinsic to stackprotector.
llvm-svn: 59519
2008-11-18 11:01:33 +00:00
Bill Wendling
5ba12c88c1 Cast to remove warning about comparing signed and unsigned.
llvm-svn: 59518
2008-11-18 10:57:27 +00:00
Nicolas Geoffray
3cd13e7e65 Implement support for JIT exceptions on X86_64. Relative offsets are
encoded on 32 bytes, and the personality function is not encoded as
relative.

llvm-svn: 59516
2008-11-18 10:44:46 +00:00
Duncan Sands
8f98029149 Remove unused variable.
llvm-svn: 59515
2008-11-18 10:39:04 +00:00
Duncan Sands
3f0dbb4ead Reapply r59464, this time using the correct type
when softening FNEG.

llvm-svn: 59513
2008-11-18 09:15:03 +00:00
Bill Wendling
8c9e9be673 A simple test for stack protectors. This should be valid on all platforms.
llvm-svn: 59505
2008-11-18 07:34:50 +00:00
Bill Wendling
485d094231 Remove the stackprotector_check intrinsic. Use a volatile load instead.
llvm-svn: 59504
2008-11-18 07:30:57 +00:00
Bill Wendling
3a50ecd70f - Use "moveAfter" instead of "remove/insert" of a basic block.
- Use less indentation in coding.
- Shorten description.
- Update comments.
- Move code around

llvm-svn: 59496
2008-11-18 05:32:11 +00:00
Dan Gohman
8e3759ee45 Fix a typo in a comment.
llvm-svn: 59489
2008-11-18 02:50:01 +00:00
Dan Gohman
bc8cfae5c3 Change SUnit's dump method to take a ScheduleDAG* instead of
a SelectionDAG*.

llvm-svn: 59488
2008-11-18 02:06:40 +00:00
Bill Wendling
33cf8ff597 Revert r59464. It was causing this failure:
Running /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/test/CodeGen/XCore/dg.exp ...
FAIL: /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/test/CodeGen/XCore/fneg.ll
Failed with signal(SIGABRT) at line 1
while running:  llvm-as < /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/test/CodeGen/XCore/fneg.ll |  llc -march=xcore > fneg.ll.tmp1.s
Assertion failed: (VT.isFloatingPoint() && "Cannot create integer FP constant!"), function getConstantFP, file /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/lib/CodeGen/SelectionDAG/SelectionDAG.cpp, line 913.
0   llc                                 0x0092115c _ZN4llvm3sys18RemoveFileOnSignalERKNS0_4PathEPSs + 844
1   libSystem.B.dylib                   0x9217809b _sigtramp + 43
2   ???                                 0xffffffff 0x0 + 4294967295
3   libSystem.B.dylib                   0x921f0ec2 raise + 26
4   libSystem.B.dylib                   0x9220047f abort + 73
5   libSystem.B.dylib                   0x921f2063 __assert_rtn + 101
6   llc                                 0x005a5b0a _ZN4llvm12SelectionDAG13getConmake[1]: *** [check-local] Error 1
make: *** [check] Error 2

llvm-svn: 59487
2008-11-18 01:49:24 +00:00
Dan Gohman
5283c5dc53 There is no InstrStage class.
llvm-svn: 59480
2008-11-18 01:05:04 +00:00
Devang Patel
2a0aa9fa51 Give SIToFPInst preference over UIToFPInst because it is faster on platforms that are widely used.
llvm-svn: 59476
2008-11-18 00:40:02 +00:00
Dan Gohman
60cb69a7b5 Avoid using a loop in ReleasePred and ReleaseSucc methods to compute the
new CycleBound value. Instead, just update CycleBound on each call.
Also, make ReleasePred and ReleaseSucc methods more consistent accross
the various schedulers.

This also happens to make ScheduleDAGRRList's CycleBound computation
somewhat more interesting, though it still doesn't have any noticeable
effect, because no current targets that use the register-pressure
reduction scheduler provide pipeline models.

llvm-svn: 59475
2008-11-18 00:38:59 +00:00
Devang Patel
705f88d5b5 While handling floating point IVs lift restrictions on initial value and increment value.
llvm-svn: 59471
2008-11-17 23:27:13 +00:00
Devang Patel
2d0c234523 Handle floating point ivs during doInitialization().
llvm-svn: 59466
2008-11-17 21:32:02 +00:00
Dan Gohman
60b429ea32 Eliminate some trivial differences between the ScheduleNodeTopDown
functions in these two schedulers.

llvm-svn: 59465
2008-11-17 21:31:02 +00:00
Duncan Sands
b13af5a714 Add soft float support for a bunch more operations. Original
patch by Richard Osborne, tweaked and extended by your humble
servant.

llvm-svn: 59464
2008-11-17 20:52:38 +00:00
Dan Gohman
a8de4a5f1d Don't bother doing latency calculations in the "fast" scheduler.
llvm-svn: 59461
2008-11-17 19:52:36 +00:00
Dan Gohman
0791f039c6 Use SUnit's CycleBound field instead of duplicating it in
a side-car datastructure

llvm-svn: 59458
2008-11-17 19:45:19 +00:00
Dale Johannesen
652c29e68d Remove these, which test for optimizations that
are not currently done (cf PowerPC/README.txt).

llvm-svn: 59456
2008-11-17 18:57:45 +00:00
Dale Johannesen
f56b6d64f9 Move some former testcases (low-probability codegen
optimizations) into this wishlist.

llvm-svn: 59455
2008-11-17 18:56:34 +00:00
Devang Patel
6c2dd85bf3 Let AnalyzeAlloca() remove debug intrinsics.
llvm-svn: 59454
2008-11-17 18:37:53 +00:00
Richard Osborne
2eb278eb4d Don't produce ADDC/ADDE when expanding SHL unless they are legal
for the target. This fixes PR3080.

llvm-svn: 59450
2008-11-17 17:34:31 +00:00
Mikhail Glushenkov
0c4ad9c7cc Support dependencies between plugins by priority-sorting.
llvm-svn: 59449
2008-11-17 17:30:25 +00:00
Mikhail Glushenkov
c44e8c9f2b Filter ToolPropertiesList to exclude all Tools not mentioned in the compilation graph.
llvm-svn: 59448
2008-11-17 17:29:42 +00:00
Mikhail Glushenkov
773924299a Add a layer of indirection to make plugins more flexible.
Use strings instead of TableGen defs in the compilation graph
definition. Makes it easier for the plugins to modify an existing graph.

llvm-svn: 59447
2008-11-17 17:29:18 +00:00