- Sep 24, 2012
-
-
Chandler Carruth authored
Queue the fallout. ;] llvm-svn: 164480
-
Chandler Carruth authored
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
-
- Sep 23, 2012
-
-
Anton Korobeynikov authored
Patch by Kai! llvm-svn: 164476
-
Chandler Carruth authored
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
-
Nick Lewycky authored
llvm-svn: 164474
-
Michael Liao authored
llvm-svn: 164472
-
Craig Topper authored
llvm-svn: 164471
-
- Sep 22, 2012
-
-
Michael Liao authored
llvm-svn: 164465
-
NAKAMURA Takumi authored
llvm-svn: 164459
-
NAKAMURA Takumi authored
llvm-svn: 164458
-
Tim Northover authored
As before with load instructions, oddities like "asr #32", "rrx" could be printed incorrectly. Patch by Chris Lidbury. llvm-svn: 164456
-
Tim Northover authored
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
-
Michael Liao authored
llvm-svn: 164453
-
Michael Liao authored
llvm-svn: 164452
-
Andrew Trick authored
Allow subtargets to tie SchedReadWrite types to processor specific sequences or variants. llvm-svn: 164451
-
Jordan Rose authored
Used by clang to print parameter indexes. llvm-svn: 164440
-
Jordan Rose authored
This silences several analyzer warnings within LLVM, and provides a slightly nicer crash experience when someone calls isa<>, cast<>, or dyn_cast<> with a null pointer. llvm-svn: 164439
-
Jordan Rose authored
This silences literally dozens of analyzer warnings on LLVM (since DenseMap is such a commonly-used class). llvm-svn: 164438
-
Akira Hatanaka authored
llvm-svn: 164435
-
Akira Hatanaka authored
llvm-svn: 164434
-
Akira Hatanaka authored
TargetLowering's callback functions. llvm-svn: 164431
-
Akira Hatanaka authored
llvm-svn: 164430
-
Akira Hatanaka authored
llvm-svn: 164429
-
Akira Hatanaka authored
llvm-svn: 164428
-
Chandler Carruth authored
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
-
Eric Christopher authored
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
-
Dan Gohman authored
llvm-svn: 164425
-
Michael J. Spencer authored
llvm-svn: 164424
-
Chad Rosier authored
llvm-svn: 164420
-
Eric Christopher authored
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
-
- Sep 21, 2012
-
-
Chad Rosier authored
llvm-svn: 164415
-
Chad Rosier authored
llvm-svn: 164414
-
Evan Cheng authored
because LiveStackAnalysis was not preserved by VirtRegWriter. This caused big stack usage regression in some cases. rdar://12340383 llvm-svn: 164408
-
Sean Silva authored
llvm-svn: 164407
-
Chad Rosier authored
llvm-svn: 164406
-
Dan Gohman authored
rest of LangRef uses. llvm-svn: 164402
-
Dan Gohman authored
llvm-svn: 164398
-
David Blaikie authored
Wordsmithing by Matt Beaumont-Gay in response to r164389. llvm-svn: 164395
-
David Blaikie authored
llvm-svn: 164389
-
Benjamin Kramer authored
We rely on it when doing the transforms. This can happen when there is an indirectbr in the loop. Fixes PR13892. llvm-svn: 164383
-