1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 19:12:56 +02:00
Commit Graph

61914 Commits

Author SHA1 Message Date
Jakob Stoklund Olesen
d969cfd17f Properly handle debug values during inline spilling.
llvm-svn: 107503
2010-07-02 19:54:40 +00:00
Gabor Greif
7d4ffef197 beautify output
llvm-svn: 107500
2010-07-02 19:26:28 +00:00
Gabor Greif
92502bcde7 use ArgOperand API
llvm-svn: 107498
2010-07-02 19:08:46 +00:00
Dan Gohman
9d0f697ca8 Don't claim to preserve AliasAnalysis. First, this is doesn't actually
have any effect, and second, deleting stores can potentially invalidate
an AliasAnalysis, and there's currently no notification for this.

llvm-svn: 107496
2010-07-02 18:43:05 +00:00
Dan Gohman
04beeefa61 Reword the definition of the noalias attribute. The intention is for
the noalias argument on function attributes be usable to model the
C99 restrict keyword on arguments, and to allow AliasAnalysis to
consider a noalias-attributed argument to be an "identified object".

To support this, refactor a new "based on" concept out of the current
pointer aliasing "associated" concept. This "based on" concept is very
similar to (though it is not identical with) the "based on" concept
in C99.

Also, reword the definition of NoAlias to more closely describe the
concept that the optimizer uses.

llvm-svn: 107495
2010-07-02 18:41:32 +00:00
Jakob Stoklund Olesen
fc2900126b Rematerialize as much as possible before inserting spills and reloads.
This allows us to recognize the common case where all uses could be
rematerialized, and no stack slot allocation is necessary.

If some values could be fully rematerialized, remove them from the live range
before allocating a stack slot for the rest.

llvm-svn: 107492
2010-07-02 17:44:57 +00:00
Jim Grosbach
5836b352f1 80-column and trailing whitespace cleanup.
llvm-svn: 107490
2010-07-02 17:41:59 +00:00
Jim Grosbach
62c9cd6f1c grammar tweaks
llvm-svn: 107489
2010-07-02 17:38:34 +00:00
Bob Wilson
f96aab3079 Fix incorrect asm-printing of some NEON immediates. Fix weak testcase so
that it checks the immediate values, not just the instructions opcodes.
Radar 8110263.

llvm-svn: 107487
2010-07-02 17:23:44 +00:00
Gabor Greif
7c64164e6a use ArgOperand API (found by my previous commit)
llvm-svn: 107482
2010-07-02 13:37:16 +00:00
Gabor Greif
c3a036d6a2 back out r107480, it was just testing the waters anyway...
llvm-svn: 107481
2010-07-02 13:27:50 +00:00
Gabor Greif
ae373634c9 [test commit, just to tickle the selfhost buildbots; I'll back out in a few minutes]
second round of low-level interface squeeze-out:
making all of CallInst's low-level operand accessors
private

If you get compile errors I strongly urge you to
update your code.


I tried to write the necessary clues into the
header where the compiler may point to, but no
guarantees. It works for my GCC.

You have several options to update your code:

- you can use the v2.8 ArgOperand accessors
- you can go via a temporary CallSite
- you can upcast to, say, User and call its
  low-level accessors if your code is definitely
  operand-order agnostic.

If you run into serious problems, please
comment in below thread (and back out this
revision only if absolutely necessary):

<http://groups.google.com/group/llvm-dev/browse_thread/thread/64650cf343b28271>

llvm-svn: 107480
2010-07-02 13:21:55 +00:00
Dan Gohman
5c4876b691 Comment a non-obvious member variable.
llvm-svn: 107458
2010-07-02 01:20:16 +00:00
Dan Gohman
c754b1eda1 IndirectBr is not safe to speculatively execute (!)
llvm-svn: 107454
2010-07-02 00:35:34 +00:00
Dan Gohman
a3d664a713 Rename CreateReg to CreateRegs, and MakeReg to CreateReg.
llvm-svn: 107451
2010-07-02 00:10:16 +00:00
Bruno Cardoso Lopes
c5670fcb23 Shrink down SSE3 code by more multiclass refactoring
llvm-svn: 107448
2010-07-01 23:10:49 +00:00
Dale Johannesen
e7117f93f1 Prevent test from hanging waiting for input.
llvm-svn: 107446
2010-07-01 22:57:11 +00:00
Bill Wendling
f21e2fe2b9 Make the "linker_private" linkage type emit a non-weak symbol to the file. It
will still be stripped by the linker when it generates the final image.

llvm-svn: 107440
2010-07-01 22:38:24 +00:00
Bruno Cardoso Lopes
c215186088 Shrink down SSE3 code by some multiclass refactoring - 1st part
llvm-svn: 107438
2010-07-01 22:33:18 +00:00
Bob Wilson
17dc7d716b ARM function alignments were off by a power of two. svn 83242 changed
getFunctionAlignment and the corresponding use of that value in the ARM
asm printer, but now we're using the standard asm printer.  The result of
this was that function alignments were dropped completely for Thumb functions.
Radar 8143571.

llvm-svn: 107435
2010-07-01 22:26:26 +00:00
Bill Wendling
90b6422f2f Implement the "linker_private_weak" linkage type. This will be used for
Objective-C metadata types which should be marked as "weak", but which the
linker will remove upon final linkage. However, this linkage isn't specific to
Objective-C.

For example, the "objc_msgSend_fixup_alloc" symbol is defined like this:

      .globl l_objc_msgSend_fixup_alloc
      .weak_definition l_objc_msgSend_fixup_alloc
      .section __DATA, __objc_msgrefs, coalesced
      .align 3
l_objc_msgSend_fixup_alloc:
       .quad   _objc_msgSend_fixup
       .quad   L_OBJC_METH_VAR_NAME_1

This is different from the "linker_private" linkage type, because it can't have
the metadata defined with ".weak_definition".

Currently only supported on Darwin platforms.

llvm-svn: 107433
2010-07-01 21:55:59 +00:00
Gabor Greif
9e9393b767 evil hack to coerce external users (projects)
to update their code to high-level interfaces

If you get compile errors in your project
please update your code according to the
comments.

This is a re-commit of r107396 which causes
compile errors for the indicated usage patterns
instead of link errors (which are less easy to
fix because of missing source location).

If you get compile errors please perform
following functionally equivalent transformations:
  - getOperand(0)  --->  getCalledValue()
  - setOperand(0, V)  --->  setCalledFunction(V)

This will make your code more future-proof
and avoid potentially hard-to-debug bugs.

please refer to this thread on llvm-dev:

<http://groups.google.com/group/llvm-dev/browse_thread/thread/64650cf343b28271>

llvm-svn: 107432
2010-07-01 21:46:41 +00:00
Devang Patel
606a8f3fbf Do not require line number entry for undefined local variable.
This is a regression caused by r106792 and caught by gdb testsuite.

llvm-svn: 107430
2010-07-01 21:38:08 +00:00
Daniel Dunbar
742376cfaa MC: Fix some stray hunks I didn't intend to commit.
llvm-svn: 107428
2010-07-01 20:48:51 +00:00
Daniel Dunbar
37b4089fbf MC: Pass the target instance to the AsmParser constructor.
llvm-svn: 107426
2010-07-01 20:41:56 +00:00
Daniel Dunbar
6202aeaec6 Remove stray comma.
llvm-svn: 107425
2010-07-01 20:20:05 +00:00
Daniel Dunbar
769d88aa45 MC: Fix an error message.
llvm-svn: 107424
2010-07-01 20:20:01 +00:00
Dan Gohman
f9365363db Remove context sensitivity concerns from interprocedural-basic-aa, and
make it more aggressive in cases where both pointers are known to live
in the same function.

llvm-svn: 107420
2010-07-01 20:08:40 +00:00
Daniel Dunbar
cc754e66c6 MC: Move COFF enumeration constants to llvm/Support/COFF.h, patch by Michael
Spencer!

llvm-svn: 107418
2010-07-01 20:07:24 +00:00
Devang Patel
8a819baed9 Preserve debug info for only extracted symbols.
llvm-svn: 107417
2010-07-01 19:58:05 +00:00
Devang Patel
a0fa700f3c Debugging infomration is encoded in llvm IR using metadata. This is designed
such a way that debug info for symbols preserved even if symbols are
optimized away by the optimizer. 

Add new special pass to remove debug info for such symbols.

llvm-svn: 107416
2010-07-01 19:49:20 +00:00
Devang Patel
fa499484c0 If a named mdnode is removed then mark module as changed.
llvm-svn: 107412
2010-07-01 18:27:46 +00:00
Bruno Cardoso Lopes
511e5f47de Move SSE3 Move patterns to a more appropriate section
Add AVX SSE3 packed horizontal and & sub instructions

llvm-svn: 107405
2010-07-01 17:35:02 +00:00
Bruno Cardoso Lopes
0a3048e8b9 Add AVX SSE3 packed addsub instructions
llvm-svn: 107404
2010-07-01 17:08:18 +00:00
Gabor Greif
28b13ea60c back out r107396 for now, it needs another minor change to function as advertised
llvm-svn: 107399
2010-07-01 15:42:00 +00:00
Gabor Greif
2ae7c86012 evil hack to coerce external users (projects)
to update their code to high-level interfaces

If you get compile errors in your project
please update your code according to the
comments.

llvm-svn: 107396
2010-07-01 15:16:35 +00:00
Dan Gohman
31850f2d8b Temporarily disable on-demand fast-isel.
llvm-svn: 107393
2010-07-01 12:15:30 +00:00
Gabor Greif
cf64605ccb reformulate CallSiteBase::getCallee to adapt to CallInst::ArgOffset, and make it work even if CallInst::op_* are private
llvm-svn: 107392
2010-07-01 11:26:05 +00:00
Gabor Greif
48effae6f6 reformulate CallSite::getCallee to adapt to CallInst::ArgOffset, and make it work even if CallInst::op_* are private
llvm-svn: 107390
2010-07-01 10:41:37 +00:00
Dan Gohman
9d65aa9f4f Use FuncInfo's isExportedInst accessor method instead of
doing the work manually.

llvm-svn: 107384
2010-07-01 03:57:05 +00:00
Dan Gohman
665da59f4d Rename CreateRegForValue to CreateReg, and change its argument
from a Value to a Type, because it doesn't actually care about
the Value.

llvm-svn: 107383
2010-07-01 03:55:39 +00:00
Dan Gohman
2151b0c83c Fast isel no longer needs DeadMachineInstrElim to clean up after it.
llvm-svn: 107381
2010-07-01 03:49:59 +00:00
Dan Gohman
8022d8e885 Teach fast-isel to avoid loading a value from memory when it's already
available in a register. This is pretty primitive, but it reduces the
number of instructions in common testcases by 4%.

llvm-svn: 107380
2010-07-01 03:49:38 +00:00
Dan Gohman
7219aedff5 Enable on-demand fast-isel.
llvm-svn: 107377
2010-07-01 02:58:57 +00:00
Dan Gohman
dff0454d78 Fix X86FastISel's add folding to actually work, and not fall back
to SelectionDAG.

llvm-svn: 107376
2010-07-01 02:58:21 +00:00
Bruno Cardoso Lopes
c1abe91367 Add AVX SSE3 replicate and convert instructions
llvm-svn: 107375
2010-07-01 02:33:39 +00:00
Dan Gohman
243bda093e Teach X86FastISel to fold constant offsets and scaled indices in
the same address.

llvm-svn: 107373
2010-07-01 02:27:15 +00:00
Dan Gohman
bac963d556 Reapply r106422, splitting the code for materializing a value out of
SelectionDAGBuilder::getValue into a helper function, with fixes to
use DenseMaps safely.

llvm-svn: 107371
2010-07-01 01:59:43 +00:00
Dan Gohman
c944ad6634 Don't use operator[] here, because it's not desirable to insert a default
value if the search fails.

llvm-svn: 107368
2010-07-01 01:33:21 +00:00
Bruno Cardoso Lopes
956316a3d7 - Add AVX SSE2 Move doubleword and quadword instructions.
- Add encode bits for VEX_W
- All 128-bit SSE 1 & SSE2 instructions that are described
  in the .td file now have a AVX encoded form already working.

llvm-svn: 107365
2010-07-01 01:20:06 +00:00