1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 19:52:54 +01:00
Commit Graph

44772 Commits

Author SHA1 Message Date
Rafael Espindola
c5a5171d1b tools like nm and ar only need register_claim_file and add_symbols. Don't abort
if other hooks are missing.

llvm-svn: 64812
2009-02-17 21:08:21 +00:00
Dan Gohman
ced54f0173 LoopIndexSplit doesn't actually use ScalarEvolution.
llvm-svn: 64811
2009-02-17 20:50:11 +00:00
Dan Gohman
59b08852dc Add a method to ScalarEvolution for telling it when a loop has been
modified in a way that may effect the trip count calculation. Change
IndVars to use this method when it rewrites pointer or floating-point
induction variables instead of using a doInitialization method to
sneak these changes in before ScalarEvolution has a chance to see
the loop. This eliminates the need for LoopPass to depend on
ScalarEvolution.

llvm-svn: 64810
2009-02-17 20:49:49 +00:00
Chris Lattner
0837686a2a commit a tweaked version of Daniel's patch for PR3599. We now
eliminate all the extensions and all but the one required truncate
from the testcase, but the or/and/shift stuff still isn't zapped.

llvm-svn: 64809
2009-02-17 20:47:23 +00:00
Dan Gohman
c99426d513 Move dumpPassStructure out of line.
llvm-svn: 64796
2009-02-17 19:41:26 +00:00
Dan Gohman
03b5be8648 Tidy whitespace.
llvm-svn: 64791
2009-02-17 19:34:54 +00:00
Dan Gohman
72f656f2ef Delete trailing whitespace.
llvm-svn: 64784
2009-02-17 19:13:57 +00:00
Duncan Sands
c0436287c2 This transform also applies to private linkage.
llvm-svn: 64773
2009-02-17 17:50:04 +00:00
Dan Gohman
07418e014e Fix 80-column violation.
llvm-svn: 64766
2009-02-17 15:57:39 +00:00
Evan Cheng
2e0cf05ad2 A couple of places where reused use operands should be marked kill. This is exposed by recent availability fallthrough changes.
llvm-svn: 64745
2009-02-17 06:41:03 +00:00
Chris Lattner
3b67310686 add a horrible note
llvm-svn: 64719
2009-02-17 01:16:14 +00:00
Bill Wendling
266c8bc98f --- Merging (from foreign repository) r64714 into '.':
U    include/llvm/CodeGen/DebugLoc.h
U    lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
U    lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp
U    lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.cpp

Enable debug location generation at -Os. This goes with the reapplication of the
r63639 patch.

llvm-svn: 64715
2009-02-17 01:04:54 +00:00
Devang Patel
e5f6fef86c Testcase for rev. 64704
llvm-svn: 64705
2009-02-17 00:15:08 +00:00
Evan Cheng
9a8e419015 Strengthen the "non-constant stride must dominate loop preheader" check.
llvm-svn: 64703
2009-02-17 00:13:06 +00:00
Dan Gohman
36c8002915 Simplify; fix some 80-column violations.
llvm-svn: 64702
2009-02-17 00:10:53 +00:00
Dan Gohman
f23a24ce3d Delete trailing whitespace.
llvm-svn: 64694
2009-02-16 23:14:14 +00:00
Dan Gohman
e06ea828a2 Fix EnforceKnownAlignment so that it doesn't ever reduce the alignment
of an alloca or global variable.

llvm-svn: 64693
2009-02-16 23:02:21 +00:00
Daniel Dunbar
778db8ec9b Add llvm::RoundUpToAlignment.
- No functionality change.

llvm-svn: 64691
2009-02-16 22:57:04 +00:00
Ted Kremenek
53921b8722 Fix bug where APSInt::operator-- incremented instead of decremented.
llvm-svn: 64687
2009-02-16 22:39:08 +00:00
Devang Patel
b1a41cd036 Test case for llvm-gcc rev. 64648.
llvm-svn: 64649
2009-02-16 19:24:29 +00:00
Nick Lewycky
6feb7523b8 Fix typo caused by too much surfing, dudes...
llvm-svn: 64626
2009-02-16 04:26:53 +00:00
Dan Gohman
47a6dc9ad1 Delete this long-commented-out code. The situation it seems to have
been written for is no longer relevant with the elimination of
signed and unsigned types.

llvm-svn: 64625
2009-02-16 02:57:42 +00:00
Dan Gohman
b36bd824fe Rename IndVarsSimplify to IndVarSimplify, to be consistent with
the name used in the code that these tests are for.

llvm-svn: 64624
2009-02-16 00:56:15 +00:00
Dan Gohman
3d93bc5654 Change these tests to use regular loads instead of llvm.x86.sse2.loadu.dq.
Enhance instcombine to use the preferred field of
GetOrEnforceKnownAlignment in more cases, so that regular IR operations are
optimized in the same way that the intrinsics currently are.

llvm-svn: 64623
2009-02-16 00:44:23 +00:00
Dan Gohman
c47d143107 Don't assume that a left-shift of a value with one bit set will have
one bit set, because the bit may be shifted off the end. Instead,
just check for a constant 1 being shifted. This is still sufficient
to handle all the cases in test/CodeGen/X86/bt.ll. This fixes PR3583.

llvm-svn: 64622
2009-02-15 23:59:32 +00:00
Dan Gohman
856736a187 MachineLICM now handles these cases.
llvm-svn: 64620
2009-02-15 23:24:52 +00:00
Nick Lewycky
494b48e76b Demonstrate the act of including multiple space-separated parameter attributes,
by request on IRC.

llvm-svn: 64619
2009-02-15 23:06:14 +00:00
Nick Lewycky
6b1d3c472e Shoot! Remove this debugging line again!
llvm-svn: 64617
2009-02-15 22:50:17 +00:00
Nick Lewycky
c3eb6707e6 Don't discard definitions of common symbols. Not sure if this is the right fix.
Before this change, the program:
  int var;
  int main(void) { return 0; }
when run under 'nm -g' would show 'U var' with the gold plugin and
'B var' with gcc.

llvm-svn: 64616
2009-02-15 22:49:17 +00:00
Nick Lewycky
9178be6059 Update the list of function annotations for nocapture. All of these came up
when I was looking at functions used by python.

Highlights include, better largefile support (64-bit file sizes on 32-bit
systems), fputs string is nocapture, popen/pclose added (popen being noalias
return), modf and frexp and friends. Also added some missing 'break' statements
and combined identical sections.

llvm-svn: 64615
2009-02-15 22:47:25 +00:00
Nicolas Geoffray
93eebdfcc7 On 64bit we may have a personality function which requires 64 bits to
be encoded.

llvm-svn: 64600
2009-02-15 20:49:23 +00:00
Duncan Sands
6c1ce1dbd5 Make this more useful for cleaning up after the
one-definition-rule llvm-gcc changes (coming soon
to a tree near you!).

llvm-svn: 64588
2009-02-15 11:54:49 +00:00
Mikhail Glushenkov
0893cd31fa 80-column violation.
llvm-svn: 64586
2009-02-15 11:32:31 +00:00
Duncan Sands
0e6fcb078c If the target of an alias has internal linkage, then the
alias can be morphed into the target.  Implement this
transform, and fix a crash in the existing transform at
the same time.

llvm-svn: 64583
2009-02-15 09:56:08 +00:00
Evan Cheng
9428fd271c Fix PR3522. It's not safe to sink into landing pad BB's.
llvm-svn: 64582
2009-02-15 08:36:12 +00:00
Evan Cheng
02d9156a8d Fix pr3571: If stride is a value defined by an instruction, make sure it dominates the loop preheader. When IV users are strength reduced, the stride is inserted into the preheader. It could create a use before def situation.
llvm-svn: 64579
2009-02-15 06:06:15 +00:00
Evan Cheng
e0558412a4 ifdef out unneeded if statement.
llvm-svn: 64575
2009-02-15 03:20:37 +00:00
Mikhail Glushenkov
5310c3cd6e Fix warning on gcc 4.3.
"system() declared with attribute warn_unused_result."

llvm-svn: 64574
2009-02-15 03:20:32 +00:00
Mikhail Glushenkov
95811401b0 Whitespace fixes.
llvm-svn: 64573
2009-02-15 03:20:03 +00:00
Cedric Venet
243a1d9a39 Add mode_t to the config.h generated by cmake on win32. Used by clang.
llvm-svn: 64555
2009-02-14 16:13:26 +00:00
Cedric Venet
48be6b5e15 Unbreak the build on win32.
Cleanup some warning.

Remark: when struct/class are declared differently than they are defined, this make problem for VC++ since it seems to mangle class differently that struct. These error are very hard to understand and find. So please, try to keep your definition/declaration in sync.

Only tested with VS2008. hope it does not break anything. feel free to revert.

llvm-svn: 64554
2009-02-14 16:06:42 +00:00
Duncan Sands
5aeb9b727a Generalize some alias analysis logic from atomic
intrinsics to any IntrWriteArgMem intrinsics.

llvm-svn: 64551
2009-02-14 10:56:35 +00:00
Mikhail Glushenkov
2b985a1694 80-column violation.
llvm-svn: 64550
2009-02-14 08:41:25 +00:00
Duncan Sands
1ccae107d2 The trampoline intrinsic can be marked IntrWriteArgMem,
now that this no longer implies nocapture.

llvm-svn: 64540
2009-02-14 05:33:26 +00:00
Duncan Sands
5e53007833 IntrWriteArgMem implies nocapture, but this wasn't
taken advantage of anywhere.  Change the definition
of IntrWriteArgMem to no longer imply nocapture, and
explicitly add nocapture attributes everywhere (well,
not quite everywhere, because some of these intrinsics
did capture their arguments!).  Also, make clear that
the lack of other side-effects does not exclude doing
volatile loads or stores - the atomic intrinsics do
these, yet they are all marked IntrWriteArgMem (this
change is safe because nothing exploited it).

llvm-svn: 64539
2009-02-14 05:16:25 +00:00
Dan Gohman
684359ea96 The x86-64 red zone is now being used.
llvm-svn: 64535
2009-02-14 03:30:05 +00:00
Dan Gohman
3695fd42a9 Extend the IndVarSimplify support for promoting induction variables:
- Test for signed and unsigned wrapping conditions, instead of just
   testing for non-negative induction ranges. 
 - Handle loops with GT comparisons, in addition to LT comparisons.
 - Support more cases of induction variables that don't start at 0.

llvm-svn: 64532
2009-02-14 02:31:09 +00:00
Dan Gohman
928d619b5e Clarify debug output.
llvm-svn: 64531
2009-02-14 02:26:50 +00:00
Dan Gohman
bd231d2e7b Simplify some code. hasComputableLoopEvolution is overkill in this case.
No functionality change.

llvm-svn: 64530
2009-02-14 02:25:19 +00:00
Dale Johannesen
8641d45bc4 Testcase for llvm-gcc 64510.
llvm-svn: 64511
2009-02-14 00:19:28 +00:00