| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
it's not a dead store if that pointer is used. Whoops!
llvm-svn: 164583
|
|
|
|
|
|
| |
rdar://9795790
llvm-svn: 164577
|
|
|
|
|
|
|
| |
declaration to use the same form as in the rest of the file. No functionality
change.
llvm-svn: 164576
|
|
|
|
|
|
|
|
|
| |
Even out-of-line jump tables can be in the code section, so mark them
as data-regions for those targets which support the directives.
rdar://12362871&12362974
llvm-svn: 164571
|
|
|
|
|
|
| |
Also remove an unused argument.
llvm-svn: 164567
|
|
|
|
|
|
| |
dead.
llvm-svn: 164561
|
|
|
|
|
|
| |
No functionality change.
llvm-svn: 164560
|
|
|
|
|
|
|
| |
store when handling byval arguments. Thus preventing reordering of the store
with load with post-RA scheduler.
llvm-svn: 164553
|
|
|
|
| |
llvm-svn: 164548
|
|
|
|
|
|
| |
This avoids a crash in visitAllocaInst when target data isn't available.
llvm-svn: 164539
|
|
|
|
|
|
| |
Queue the fallout. ;]
llvm-svn: 164480
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
integer promotion analogous to vector promotion. When there is an
integer alloca being accessed both as its integer type and as a narrower
integer type, promote the narrower access to "insert" and "extract" the
smaller integer from the larger one, and make the integer alloca
a candidate for promotion.
In the new formulation, we don't care about target legal integer or use
thresholds to control things. Instead, we only perform this promotion to
an integer type which the frontend has already emitted a load or store
for. This bounds the scope and prevents optimization passes from
coalescing larger and larger entities into a single integer.
llvm-svn: 164479
|
|
|
|
|
|
| |
Patch by Kai!
llvm-svn: 164476
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
across the uses of the alloca. It's entirely possible for negative
numbers to come up here, and in some rare cases simply doing the 2's
complement arithmetic isn't the correct decision. Notably, we can't zext
the index of the GEP. The definition of GEP is that these offsets are
sign extended or truncated to the size of the pointer, and then wrapping
2's complement arithmetic used.
This patch fixes an issue that comes up with *no* input from the
buildbots or bootstrap afaict. The only place where it manifested,
disturbingly, is Clang's own regression test suite. A reduced and
targeted collection of tests are added to cope with this. Note that I've
tried to pin down the potential cases of overflow, but may have missed
some cases. I've tried to add a few cases to test this, but its hard
because LLVM has quite limited support for >64bit constructs.
llvm-svn: 164475
|
|
|
|
| |
llvm-svn: 164474
|
|
|
|
| |
llvm-svn: 164471
|
|
|
|
| |
llvm-svn: 164459
|
|
|
|
| |
llvm-svn: 164458
|
|
|
|
|
|
|
|
|
| |
As before with load instructions, oddities like "asr #32", "rrx" could
be printed incorrectly.
Patch by Chris Lidbury.
llvm-svn: 164456
|
|
|
|
|
|
|
|
|
| |
This patch fixes load/store instructions to handle less common cases
like "asr #32", "rrx" properly throughout the MC layer.
Patch by Chris Lidbury.
llvm-svn: 164455
|
|
|
|
| |
llvm-svn: 164453
|
|
|
|
| |
llvm-svn: 164452
|
|
|
|
| |
llvm-svn: 164435
|
|
|
|
| |
llvm-svn: 164434
|
|
|
|
|
|
| |
TargetLowering's callback functions.
llvm-svn: 164431
|
|
|
|
| |
llvm-svn: 164430
|
|
|
|
| |
llvm-svn: 164429
|
|
|
|
| |
llvm-svn: 164428
|
|
|
|
|
|
|
|
|
|
|
| |
selects with a constant condition. This resulted in the operands
remaining live through the SROA rewriter. Most of the time, this just
caused some dead allocas to persist and get zapped by later passes, but
in one case found by Joerg, it caused a crash when we tried to *promote*
the alloca despite it having this dead use. We already have the
mechanisms in place to handle this, just wire select up to them.
llvm-svn: 164427
|
|
|
|
|
|
|
|
|
| |
whether or not we want to print out backtrace information. Useful
for libraries that don't need backtrace information on a crash.
rdar://11844710
llvm-svn: 164426
|
|
|
|
| |
llvm-svn: 164420
|
|
|
|
|
|
|
|
|
|
|
|
| |
care about it being an argument variable so that we can decide
that captured block and lambda vars that don't happen to
be arguments could be an argument pointer.
Add the object pointer for one case onto the subprogram die.
rdar://12001329
llvm-svn: 164419
|
|
|
|
| |
llvm-svn: 164415
|
|
|
|
| |
llvm-svn: 164414
|
|
|
|
|
|
|
|
|
| |
because LiveStackAnalysis was not preserved by VirtRegWriter. This caused
big stack usage regression in some cases.
rdar://12340383
llvm-svn: 164408
|
|
|
|
|
|
|
|
|
| |
We rely on it when doing the transforms. This can happen when there is an
indirectbr in the loop.
Fixes PR13892.
llvm-svn: 164383
|
|
|
|
|
|
|
| |
non-aligned i32 loads/stores.
rdar://12304911
llvm-svn: 164381
|
|
|
|
|
|
|
|
| |
a value that is zext'd.
Fixes PR13250.
llvm-svn: 164377
|
|
|
|
| |
llvm-svn: 164373
|
|
|
|
| |
llvm-svn: 164372
|
|
|
|
|
|
| |
Attributes class. Now with fix.
llvm-svn: 164370
|
|
|
|
|
|
|
|
|
|
|
|
| |
parsed function.
We inserted a placeholder that was never replaced because the function was
already visited. Assert that all placeholders have been resolved when tearing
down the bitcode reader.
Fixes PR13895.
llvm-svn: 164369
|
|
|
|
|
|
| |
Quick review against the manual revealed a few obvious mistakes.
llvm-svn: 164361
|
|
|
|
|
|
| |
- Fix PR5145 and turn on test 8-bit atomic ops
llvm-svn: 164358
|
|
|
|
|
|
|
| |
- Rewirte most atomic instructions in templates for both better
maintenance and future extensions, such as HLE in TSX.
llvm-svn: 164357
|
|
|
|
|
|
| |
[-Wunused-variable]
llvm-svn: 164354
|
|
|
|
|
|
| |
Patch by Reed Kotler.
llvm-svn: 164349
|
|
|
|
|
|
|
| |
non-halfword-aligned i16 loads/stores.
rdar://12304911
llvm-svn: 164345
|
|
|
|
| |
llvm-svn: 164344
|
|
|
|
| |
llvm-svn: 164343
|