Justin Holewinski [Thu, 28 Apr 2011 00:19:56 +0000 (00:19 +0000)]
PTX: support for select_cc and fixes for setcc
- expansion of SELECT_CC into SETCC
- force SETCC result type to i1
- custom selection for handling i1 using SETCC
Patch by Dan Bailey
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130358
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Holewinski [Thu, 28 Apr 2011 00:19:55 +0000 (00:19 +0000)]
PTX: support for select
- selection of SELP instruction
- new selp.ll test
Patch by Dan Bailey
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130357
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Holewinski [Thu, 28 Apr 2011 00:19:54 +0000 (00:19 +0000)]
PTX: mov fix and rounding correction for cvt
- fix typo in MOV
- correct fp rounding on CVT
- new cvt.ll test
Patch by Dan Bailey
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130356
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Holewinski [Thu, 28 Apr 2011 00:19:53 +0000 (00:19 +0000)]
PTX: support for fneg
- selection of FNEG instruction
- new fneg.ll test
Patch by Dan Bailey
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130355
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Holewinski [Thu, 28 Apr 2011 00:19:52 +0000 (00:19 +0000)]
PTX: support for zext loads and trunc stores
- expansion of EXTLOAD and TRUNCSTORE instructions
Patch by Dan Bailey
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130354
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Holewinski [Thu, 28 Apr 2011 00:19:51 +0000 (00:19 +0000)]
PTX: support for bitwise operations on predicates
- selection of bitwise preds (AND, OR, XOR)
- new bitwise.ll test
Patch by Dan Bailey
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130353
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Holewinski [Thu, 28 Apr 2011 00:19:50 +0000 (00:19 +0000)]
PTX: patch to AsmPrinter
- immediate value cast as long not int
- handles initializer for constant array
Patch by Dan Bailey
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130352
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Thu, 28 Apr 2011 00:13:59 +0000 (00:13 +0000)]
Reverting r130340 in the unlikely event that it's responsible for a llvm-gcc stage2 compiler error.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130350
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Wed, 27 Apr 2011 23:58:52 +0000 (23:58 +0000)]
fast-isel sret. We actually don't need to do anything special on x86. :) rdar://problem/
9303592 .
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130348
91177308-0d34-0410-b5e6-
96231b3b80d8
Johnny Chen [Wed, 27 Apr 2011 23:29:21 +0000 (23:29 +0000)]
Add tests for A8.6.110 NOP.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130345
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 27 Apr 2011 23:17:57 +0000 (23:17 +0000)]
Remove unnecessary argument.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130343
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 27 Apr 2011 23:08:15 +0000 (23:08 +0000)]
Rename getPersonalityPICSymbol to getCFIPersonalitySymbol, document it, and
give it a bit more responsibility. Also implement it for MachO.
If hacked to use cfi, 32 bit MachO will produce
.cfi_personality 155, L___gxx_personality_v0$non_lazy_ptr
and 64 bit will produce
.cfi_presonality ___gxx_personality_v0
The general idea is that .cfi_personality gets passed the final symbol. It is
up to codegen to produce it if using indirect representation (like 32 bit
MachO), but it is up to MC to decide which relocations to create.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130341
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Wed, 27 Apr 2011 23:00:03 +0000 (23:00 +0000)]
Fixes PR9730: indvars: An asserting value handle still pointed to this value
Modified LinearFunctionTestReplace to push the condition on the dead
list instead of eagerly deleting it. This can cause unnecessary
IV rewrites, which should have no effect on codegen and will not be an
issue once we stop generating canonical IVs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130340
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 27 Apr 2011 22:45:24 +0000 (22:45 +0000)]
Simplify handling of variables with complex address (i.e. blocks variables)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130339
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Wed, 27 Apr 2011 22:41:55 +0000 (22:41 +0000)]
Make the fast-isel code for literal 0.0 a bit shorter/faster, since 0.0 is common. rdar://problem/
9303592 .
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130338
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Wed, 27 Apr 2011 22:21:02 +0000 (22:21 +0000)]
Remove unused function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130337
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Wed, 27 Apr 2011 21:53:35 +0000 (21:53 +0000)]
docs/doxygen.css: Tweak style for readability.
A few styles are brought from http://llvm.org/test-doxygen/api/api.css
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130333
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 27 Apr 2011 21:29:52 +0000 (21:29 +0000)]
Fix indentation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130331
91177308-0d34-0410-b5e6-
96231b3b80d8
Kevin Enderby [Wed, 27 Apr 2011 21:02:27 +0000 (21:02 +0000)]
Fix a bug in the case that there is no add or subtract symbol and the offset
value is zero so it does not add a NULL expr operand.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130330
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 27 Apr 2011 20:44:28 +0000 (20:44 +0000)]
Teach BasicAA about arm.neon.vld1 and vst1.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130327
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 27 Apr 2011 20:29:27 +0000 (20:29 +0000)]
Revert r130178. It turned out to be not the optimal path to emit complex location expressions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130326
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 27 Apr 2011 19:32:43 +0000 (19:32 +0000)]
If converter was being too cute. It look for root BBs (which don't have
successors) and use inverse depth first search to traverse the BBs. However
that doesn't work when the CFG has infinite loops. Simply do a linear
traversal of all BBs work just fine.
rdar://
9344645
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130324
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 27 Apr 2011 18:39:03 +0000 (18:39 +0000)]
When analyzing functions known to only access argument pointees,
only check arguments with pointer types. Update the documentation
of IntrReadArgMem reflect this.
While here, add support for TBAA tags on intrinsic calls.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130317
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Wed, 27 Apr 2011 18:17:36 +0000 (18:17 +0000)]
Corrects an old, old typo in a case that doesn't seem to be reached in practice.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130316
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 27 Apr 2011 17:59:27 +0000 (17:59 +0000)]
Simplify cfg inserts a call to trap when unreachable code is detected. Assign DebugLoc to this new trap instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130315
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Wed, 27 Apr 2011 17:42:31 +0000 (17:42 +0000)]
Also add <imp-def> operands for defined and dead super-registers when rewriting.
We cannot rely on the <imp-def> operands added by LiveIntervals in all cases as
demonstrated by the test case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130313
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 27 Apr 2011 15:21:19 +0000 (15:21 +0000)]
Factor a bit of code to MCStreamer::EmitLabel. Keep track of the last
non private symbol. This will be use for handling
foo:
.cfi_startproc
...
On OS X where we have to create a foo.eh symbol.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130305
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Wed, 27 Apr 2011 10:55:12 +0000 (10:55 +0000)]
Stop trying to have instcombine preserve LCSSA form: this was not
effective in avoiding recomputation of LCSSA form; the widespread
use of instsimplify (which looks through phi nodes) means it was
not preserving LCSSA form anyway; and instcombine is no longer
scheduled in the middle of the loop passes so this doesn't matter
anymore.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130301
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Wed, 27 Apr 2011 05:42:17 +0000 (05:42 +0000)]
Test case and comment for PR9633.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130294
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Wed, 27 Apr 2011 03:22:17 +0000 (03:22 +0000)]
Use static inline to do the right thing when built in C99 mode. Of course,
C89 doesn't have an inline keyword.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130279
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Wed, 27 Apr 2011 01:45:07 +0000 (01:45 +0000)]
Refactor out code to fast-isel a memcpy operation with a small constant
length. (I'm planning to use this to implement byval.)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130274
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 27 Apr 2011 01:43:49 +0000 (01:43 +0000)]
Force some values to be absolute and align based on the FDE pointers size. A small
step towards using .cfi_* on OS X.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130273
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Wed, 27 Apr 2011 01:34:27 +0000 (01:34 +0000)]
Fix an edge case involving branches in fast-isel on x86.
rdar://problem/
9303306 .
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130272
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Wed, 27 Apr 2011 01:21:25 +0000 (01:21 +0000)]
Fix for PR9633 [indvars] Assertion `isa<X>(Val) && "cast<Ty>() argument of incompatible type!"' failed.
Added a type check in ScalarEvolution::computeSCEVAtScope to handle the case in which operands of an
AddRecExpr in the current scope are folded.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130271
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 26 Apr 2011 22:42:01 +0000 (22:42 +0000)]
Enhance memdep to return clobber relation between noalias loads when
an earlier load could be widened to encompass a later load. For example,
if we see:
X = load i8* P, align 4
Y = load i8* (P+3), align 1
and we have a 32-bit native integer type, we can widen the former load
to i32 which then makes the second load redundant. GVN can't actually
do anything with this load/load relation yet, so this isn't testable, but
it is the next step to resolving PR6627, and a fairly general class of
"merge neighboring loads" missed optimizations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130250
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Tue, 26 Apr 2011 22:33:12 +0000 (22:33 +0000)]
Add a safe-guard against repeated splitting for some rare cases.
The number of blocks covered by a live range must be strictly decreasing when
splitting, otherwise we can't allow repeated splitting.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130249
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 26 Apr 2011 21:53:34 +0000 (21:53 +0000)]
use AA::isMustAlias to simplify some calls.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130248
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 26 Apr 2011 21:50:51 +0000 (21:50 +0000)]
remove support for llvm.invariant.end from memdep. It is a
work-in-progress that is not progressing, and it has issues.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130247
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 26 Apr 2011 21:31:35 +0000 (21:31 +0000)]
Be careful about scheduling nodes above previous calls. It increase usages of
more callee-saved registers and introduce copies. Only allows it if scheduling
a node above calls would end up lessen register pressure.
Call operands also has added ABI restrictions for register allocation, so be
extra careful with hoisting them above calls.
rdar://
9329627
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130245
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 26 Apr 2011 21:09:04 +0000 (21:09 +0000)]
This test should be in MC. It breaks with changes to scheduling / register allocation so it's being removed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130243
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 26 Apr 2011 20:45:33 +0000 (20:45 +0000)]
make a couple of changes to the standard pass pipeline:
1. Only run the early (in the module pass pipe) instcombine/simplifycfg
if the "unit at a time" passes they are cleaning up after runs.
2. Move the "clean up after the unroller" pass to the very end of the
function-level pass pipeline. Loop unroll uses instsimplify now,
so it doesn't create a ton of trash. Moving instcombine later allows
it to clean up after opportunities are exposed by GVN, DSE, etc.
3. Introduce some phase ordering tests for things that are specifically
intended to be simplified by the full optimizer as a whole.
This resolves PR2338, and is progress towards PR6627, which will be
generating code that looks similar to test2.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130241
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 26 Apr 2011 20:18:20 +0000 (20:18 +0000)]
Transform: "icmp eq (trunc (lshr(X, cst1)), cst" to "icmp (and X, mask), cst"
when X has multiple uses. This is useful for exposing secondary optimizations,
but the X86 backend isn't ready for this when X has a single use. For example,
this can disable load folding.
This is inching towards resolving PR6627.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130238
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 26 Apr 2011 20:02:45 +0000 (20:02 +0000)]
some random cleanups, no functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130237
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 26 Apr 2011 19:50:39 +0000 (19:50 +0000)]
add an m_ConstantInt matching predicate that binds to a uint64_t, and add an m_OneUse()
predicate that matches if the subexpr has a single use.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130235
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Tue, 26 Apr 2011 19:44:18 +0000 (19:44 +0000)]
ARM and Thumb2 support for atomic MIN/MAX/UMIN/UMAX loads.
rdar://
9326019
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130234
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 26 Apr 2011 19:26:53 +0000 (19:26 +0000)]
Print the label if we will use it in debug_frame.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130232
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 26 Apr 2011 19:06:18 +0000 (19:06 +0000)]
Refactor code. Keep dwarf register operation selection logic at one place.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130231
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Tue, 26 Apr 2011 18:52:36 +0000 (18:52 +0000)]
Use the new TRI->getLargestLegalSuperClass hook to constrain register class inflation.
This has two effects: 1. We never inflate to a larger register class than what
the sub-target can handle. 2. Completely unconstrained virtual registers get the
largest possible register class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130229
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Tue, 26 Apr 2011 18:52:33 +0000 (18:52 +0000)]
Add a TRI::getLargestLegalSuperClass hook to provide an upper limit on register class inflation.
The hook will be used by the register allocator when recomputing register
classes after removing constraints.
Thumb1 code doesn't allow anything larger than tGPR, and x86 needs to ensure
that the spill size doesn't change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130228
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Tue, 26 Apr 2011 18:47:43 +0000 (18:47 +0000)]
Force a triple on this test to unbreak windows buildbots.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130226
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 26 Apr 2011 18:24:39 +0000 (18:24 +0000)]
Fix an off by one error while accessing complex address element of a DIVariable.
This worked untill now because stars are aligned (i.e. num of complex address elments are always 0 or 2+ and when it is 2+ at least two elements are access together)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130225
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 26 Apr 2011 17:41:02 +0000 (17:41 +0000)]
Improve the bail-out predicate to really only kick in when phi
translation fails. We were bailing out in some cases that would
cause us to miss GVN'ing some non-local cases away.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130206
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 26 Apr 2011 17:18:34 +0000 (17:18 +0000)]
Fast-isel support for simple inline asms.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130205
91177308-0d34-0410-b5e6-
96231b3b80d8
Oscar Fuentes [Tue, 26 Apr 2011 14:55:27 +0000 (14:55 +0000)]
Honor LLVM_BUILD_RUNTIME.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130199
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 26 Apr 2011 14:17:42 +0000 (14:17 +0000)]
Add test for PR9743.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130198
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Tue, 26 Apr 2011 07:30:10 +0000 (07:30 +0000)]
Another example of a static table that wasn't marked static.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130193
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 26 Apr 2011 06:14:13 +0000 (06:14 +0000)]
don't emit the symbol name twice for local bss and common
symbols. For example, don't emit:
.comm _i,4,2 ## @i
## @i
instead emit:
.comm _i,4,2 ## @i
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130192
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Tue, 26 Apr 2011 05:48:41 +0000 (05:48 +0000)]
Add cmakefiles to build profile_rt.so!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130191
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 26 Apr 2011 04:57:37 +0000 (04:57 +0000)]
Fix typo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130190
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 26 Apr 2011 03:58:56 +0000 (03:58 +0000)]
Print all the moves at a given label instead of just the first one.
Remove previous DwarfCFI hack.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130187
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Tue, 26 Apr 2011 03:54:16 +0000 (03:54 +0000)]
Rename everything to follow LLVM style ... I think.
Add support for switch and indirectbr edges. This works by densely numbering
all blocks which have such terminators, and then separately numbering the
possible successors. The predecessors write down a number, the successor knows
its own number (as a ConstantInt) and sends that and the pointer to the number
the predecessor wrote down to the runtime, who looks up the counter in a
per-function table.
Coverage data should now be functional, but I haven't tested it on anything
other than my 2-file synthetic test program for coverage.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130186
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 26 Apr 2011 02:17:58 +0000 (02:17 +0000)]
No relocation produces a SLEB or ULEB, make sure they are handled in MC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130181
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 26 Apr 2011 01:21:15 +0000 (01:21 +0000)]
Enhance MemDep: When alias analysis returns a partial alias result,
return it as a clobber. This allows GVN to do smart things.
Enhance GVN to be smart about the case when a small load is clobbered
by a larger overlapping load. In this case, forward the value. This
allows us to compile stuff like this:
int test(void *P) {
int tmp = *(unsigned int*)P;
return tmp+*((unsigned char*)P+1);
}
into:
_test: ## @test
movl (%rdi), %ecx
movzbl %ch, %eax
addl %ecx, %eax
ret
which has one load. We already handled the case where the smaller
load was from a must-aliased base pointer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130180
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 26 Apr 2011 00:12:46 +0000 (00:12 +0000)]
Let dwarf writer allocate extra space in the debug location expression. This space, if requested, will be used for complex addresses of the Blocks' variables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130178
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 25 Apr 2011 23:05:21 +0000 (23:05 +0000)]
Rename a local variable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130171
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 25 Apr 2011 23:02:17 +0000 (23:02 +0000)]
Rename a method to match what it really does.
s/addVariableAddress/addFrameVariableAddress/g
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130170
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 25 Apr 2011 22:52:55 +0000 (22:52 +0000)]
Do not drop a variable's complex address if it is not based on frame base.
Observed this while reading code, so I do not have a test case handy here.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130167
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 25 Apr 2011 22:48:29 +0000 (22:48 +0000)]
Fix an iterator invalidation bug.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130166
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Mon, 25 Apr 2011 22:39:46 +0000 (22:39 +0000)]
Make this test disable fast isel as it's not needed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130165
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 25 Apr 2011 22:14:33 +0000 (22:14 +0000)]
mark a large static table static. Pointed out by Michael Ilseman!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130160
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 25 Apr 2011 21:02:12 +0000 (21:02 +0000)]
Improve adherence to general style, use "foo_t &x" instead of "foo_t& x"
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130153
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 25 Apr 2011 20:58:50 +0000 (20:58 +0000)]
allow adding a FoldingSetNodeID to a FastFoldingSetNode, resolving PR9499,
patch by Johannes Schaub!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130151
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 25 Apr 2011 18:44:26 +0000 (18:44 +0000)]
add a missed bitfield instcombine.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130137
91177308-0d34-0410-b5e6-
96231b3b80d8
Akira Hatanaka [Mon, 25 Apr 2011 17:10:45 +0000 (17:10 +0000)]
Lower BlockAddress node when relocation-model is static.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130131
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 25 Apr 2011 16:33:52 +0000 (16:33 +0000)]
A dbg.declare may not be in entry block, even if it is referring to an incoming argument. However, It is appropriate to emit DBG_VALUE referring to this incoming argument in entry block in MachineFunction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130129
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Mon, 25 Apr 2011 10:12:01 +0000 (10:12 +0000)]
Make tests more useful.
lit needs a linter ...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130126
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Mon, 25 Apr 2011 07:11:23 +0000 (07:11 +0000)]
Remove some hard coded CR-LFs. Some of these were the entire files, one of
these was just one line of a file. Explicitly set the eol-style property on the
files to try and ensure this fix stays.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130125
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Mon, 25 Apr 2011 06:21:43 +0000 (06:21 +0000)]
Fix comment typo. Noticed by Liu.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130120
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Sun, 24 Apr 2011 19:55:34 +0000 (19:55 +0000)]
Simplify the logic. Noticed by aKor.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130116
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Sun, 24 Apr 2011 19:00:34 +0000 (19:00 +0000)]
Synchronize the conditions for producing a .cfi_startproc and a .cfi_endproc.
Fixes PR9787.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130115
91177308-0d34-0410-b5e6-
96231b3b80d8
Sebastian Redl [Sun, 24 Apr 2011 15:47:01 +0000 (15:47 +0000)]
Fix Target/ARM/Thumb1FrameLowering.h header guard.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130097
91177308-0d34-0410-b5e6-
96231b3b80d8
Sebastian Redl [Sun, 24 Apr 2011 15:46:56 +0000 (15:46 +0000)]
Give MC/MCDisassembler/Disassembler.h a header guard.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130096
91177308-0d34-0410-b5e6-
96231b3b80d8
Sebastian Redl [Sun, 24 Apr 2011 15:46:51 +0000 (15:46 +0000)]
Give SplitKit.h a header guard.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130095
91177308-0d34-0410-b5e6-
96231b3b80d8
Sebastian Redl [Sun, 24 Apr 2011 15:46:46 +0000 (15:46 +0000)]
Give ImmutableIntervalMap.h an include guard.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130094
91177308-0d34-0410-b5e6-
96231b3b80d8
Jay Foad [Sun, 24 Apr 2011 14:30:00 +0000 (14:30 +0000)]
Fix an assert to check exactly what it says.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130093
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Sun, 24 Apr 2011 14:17:41 +0000 (14:17 +0000)]
Add a TODO.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130092
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Sun, 24 Apr 2011 14:17:37 +0000 (14:17 +0000)]
Regenerate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130091
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Sun, 24 Apr 2011 14:17:32 +0000 (14:17 +0000)]
Remove all references to plugins from the LLVMC docs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130090
91177308-0d34-0410-b5e6-
96231b3b80d8
Jay Foad [Sun, 24 Apr 2011 10:11:03 +0000 (10:11 +0000)]
PR9214: Convert the DIBuilder API to use ArrayRef.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130086
91177308-0d34-0410-b5e6-
96231b3b80d8
Jay Foad [Sat, 23 Apr 2011 19:53:52 +0000 (19:53 +0000)]
Remove unused STL header includes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130068
91177308-0d34-0410-b5e6-
96231b3b80d8
Jay Foad [Sat, 23 Apr 2011 09:06:00 +0000 (09:06 +0000)]
Like the coding standards say, do not use "using namespace std".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130054
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sat, 23 Apr 2011 08:21:06 +0000 (08:21 +0000)]
Silence an overzealous uninitialized variable warning from GCC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130053
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Sat, 23 Apr 2011 04:08:15 +0000 (04:08 +0000)]
Accidental function name mangling.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130050
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Sat, 23 Apr 2011 03:55:32 +0000 (03:55 +0000)]
Thumb2 and ARM add/subtract with carry fixes.
Fixes Thumb2 ADCS and SBCS lowering: <rdar://problem/
9275821>.
t2ADCS/t2SBCS are now pseudo instructions, consistent with ARM, so the
assembly printer correctly prints the 's' suffix.
Fixes Thumb2 adde -> SBC matching to check for live/dead carry flags.
Fixes the internal ARM machine opcode mnemonic for ADCS/SBCS.
Fixes ARM SBC lowering to check for live carry (potential bug).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130048
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Sat, 23 Apr 2011 03:27:19 +0000 (03:27 +0000)]
Comment edit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130047
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Trick [Sat, 23 Apr 2011 03:24:11 +0000 (03:24 +0000)]
whitespace
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130046
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Sat, 23 Apr 2011 00:30:22 +0000 (00:30 +0000)]
docs: Introduce cascading style <div> and <p> continued on <h[2-5]>.
<h2>Section Example</h2>
<div> <!-- h2+div is applied -->
<p>Section preamble.</p>
<h3>Subsection Example</h3>
<p> <!-- h3+p is applied -->
Subsection body
</p>
<!-- End of section body -->
</div>
FIXME: Care H5 better.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130040
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Sat, 23 Apr 2011 00:15:45 +0000 (00:15 +0000)]
test/CodeGen/X86/shrink-compare.ll: Relax expressions for Win64.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130039
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 22 Apr 2011 23:38:06 +0000 (23:38 +0000)]
Teach FastISel to deal with instructions that have two immediate operands.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130033
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Fri, 22 Apr 2011 23:10:17 +0000 (23:10 +0000)]
Let front-end tie subprogram declaration with subprogram definition directly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130028
91177308-0d34-0410-b5e6-
96231b3b80d8