| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
| |
converting the symbol passed to .cfi_personality into bytes is the file.
llvm-svn: 130400
|
| |
|
|
| |
llvm-svn: 130397
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
a bit more sinister as the memset doesn't do what the constructor does.
There seems to be a cleaner solution than a cast here though, instead we
can point the memset destination into the union its actually trying to
clear.
An alternative is to point to the Untyped member of this union. Review
appreciated, and if that is cleaner I'm happy to switch. All of these
should be functionally equivalent to the original code.
llvm-svn: 130395
|
| |
|
|
|
|
|
|
|
|
|
| |
wider load would allow elimination of subsequent loads, and when the wider
load is still a native integer type. This eliminates a ton of loads on
various benchmarks involving struct fields, though it is somewhat hobbled
by clang not being very aggressive about field alignment.
This is yet another step along the way towards resolving PR6627.
llvm-svn: 130390
|
| |
|
|
|
|
|
|
| |
immediate patterns in arm to using the pattern.
Handles rdar://9299434
llvm-svn: 130386
|
| |
|
|
| |
llvm-svn: 130385
|
| |
|
|
|
|
|
| |
This removes one of the main advantages of moving eh_frame to MC, but
makes the transition a lot easier to debug (run md5).
llvm-svn: 130379
|
| |
|
|
| |
llvm-svn: 130378
|
| |
|
|
|
|
| |
symbols.
llvm-svn: 130375
|
| |
|
|
|
|
|
| |
This fixes clang generated blocks' variables' debug info.
Radar 9279956.
llvm-svn: 130373
|
| |
|
|
| |
llvm-svn: 130360
|
| |
|
|
|
|
|
|
|
|
| |
- expansion of SELECT_CC into SETCC
- force SETCC result type to i1
- custom selection for handling i1 using SETCC
Patch by Dan Bailey
llvm-svn: 130358
|
| |
|
|
|
|
|
|
|
| |
- selection of SELP instruction
- new selp.ll test
Patch by Dan Bailey
llvm-svn: 130357
|
| |
|
|
|
|
|
|
|
|
| |
- fix typo in MOV
- correct fp rounding on CVT
- new cvt.ll test
Patch by Dan Bailey
llvm-svn: 130356
|
| |
|
|
|
|
|
|
|
| |
- selection of FNEG instruction
- new fneg.ll test
Patch by Dan Bailey
llvm-svn: 130355
|
| |
|
|
|
|
|
|
| |
- expansion of EXTLOAD and TRUNCSTORE instructions
Patch by Dan Bailey
llvm-svn: 130354
|
| |
|
|
|
|
|
|
|
| |
- selection of bitwise preds (AND, OR, XOR)
- new bitwise.ll test
Patch by Dan Bailey
llvm-svn: 130353
|
| |
|
|
|
|
|
|
|
| |
- immediate value cast as long not int
- handles initializer for constant array
Patch by Dan Bailey
llvm-svn: 130352
|
| |
|
|
|
|
| |
stage2 compiler error.
llvm-svn: 130350
|
| |
|
|
|
|
| |
rdar://problem/9303592 .
llvm-svn: 130348
|
| |
|
|
| |
llvm-svn: 130343
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
llvm-svn: 130341
|
| |
|
|
|
|
|
|
|
| |
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.
llvm-svn: 130340
|
| |
|
|
| |
llvm-svn: 130339
|
| |
|
|
|
|
| |
common. rdar://problem/9303592 .
llvm-svn: 130338
|
| |
|
|
| |
llvm-svn: 130337
|
| |
|
|
| |
llvm-svn: 130331
|
| |
|
|
|
|
| |
value is zero so it does not add a NULL expr operand.
llvm-svn: 130330
|
| |
|
|
| |
llvm-svn: 130327
|
| |
|
|
|
|
| |
location expressions.
llvm-svn: 130326
|
| |
|
|
|
|
|
|
|
|
| |
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
llvm-svn: 130324
|
| |
|
|
|
|
|
|
|
| |
only check arguments with pointer types. Update the documentation
of IntrReadArgMem reflect this.
While here, add support for TBAA tags on intrinsic calls.
llvm-svn: 130317
|
| |
|
|
| |
llvm-svn: 130316
|
| |
|
|
|
|
| |
Assign DebugLoc to this new trap instruction.
llvm-svn: 130315
|
| |
|
|
|
|
|
| |
We cannot rely on the <imp-def> operands added by LiveIntervals in all cases as
demonstrated by the test case.
llvm-svn: 130313
|
| |
|
|
|
|
|
|
|
|
|
|
| |
non private symbol. This will be use for handling
foo:
.cfi_startproc
...
On OS X where we have to create a foo.eh symbol.
llvm-svn: 130305
|
| |
|
|
|
|
|
|
|
|
| |
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.
llvm-svn: 130301
|
| |
|
|
| |
llvm-svn: 130294
|
| |
|
|
|
|
| |
length. (I'm planning to use this to implement byval.)
llvm-svn: 130274
|
| |
|
|
|
|
|
|
| |
small
step towards using .cfi_* on OS X.
llvm-svn: 130273
|
| |
|
|
|
|
| |
rdar://problem/9303306 .
llvm-svn: 130272
|
| |
|
|
|
|
|
|
|
| |
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.
llvm-svn: 130271
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
llvm-svn: 130250
|
| |
|
|
|
|
|
| |
The number of blocks covered by a live range must be strictly decreasing when
splitting, otherwise we can't allow repeated splitting.
llvm-svn: 130249
|
| |
|
|
| |
llvm-svn: 130248
|
| |
|
|
|
|
| |
work-in-progress that is not progressing, and it has issues.
llvm-svn: 130247
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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
llvm-svn: 130245
|
| |
|
|
|
|
|
|
|
|
| |
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.
llvm-svn: 130238
|
| |
|
|
| |
llvm-svn: 130237
|
| |
|
|
|
|
| |
rdar://9326019
llvm-svn: 130234
|