- 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
-
Craig Topper authored
llvm-svn: 164471
-
- Sep 22, 2012
-
-
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
-
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
-
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
-
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
-
Chad Rosier authored
non-aligned i32 loads/stores. rdar://12304911 llvm-svn: 164381
-
Benjamin Kramer authored
Fixes PR13250. llvm-svn: 164377
-
Bill Wendling authored
llvm-svn: 164373
-
Michael Liao authored
llvm-svn: 164372
-
Bill Wendling authored
Make the 'get*AlignmentFromAttr' functions into member functions within the Attributes class. Now with fix. llvm-svn: 164370
-
Benjamin Kramer authored
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
-
Andrew Trick authored
Quick review against the manual revealed a few obvious mistakes. llvm-svn: 164361
-
Michael Liao authored
- Fix PR5145 and turn on test 8-bit atomic ops llvm-svn: 164358
-
Michael Liao authored
- Rewirte most atomic instructions in templates for both better maintenance and future extensions, such as HLE in TSX. llvm-svn: 164357
-
NAKAMURA Takumi authored
llvm-svn: 164354
-
Akira Hatanaka authored
Patch by Reed Kotler. llvm-svn: 164349
-
Chad Rosier authored
non-halfword-aligned i16 loads/stores. rdar://12304911 llvm-svn: 164345
-
Jim Grosbach authored
llvm-svn: 164344
-
Jim Grosbach authored
llvm-svn: 164343
-