- Apr 11, 2012
-
-
Dylan Noblesmith authored
LangRef.html says: "There are no arrays, vectors or constants of this type." This was hitting assertions when passing the -generate-x86-mmx option. PR12452. llvm-svn: 154445
-
Kostya Serebryany authored
- don't isntrument reads from constant globals. Saves ~1.5% of instrumented instructions on CPU2006 (counting static instructions, not their execution). - don't insrument reads from vtable (which is a global constant too). Saves ~5%. I did not measure the run-time impact of this, but it is certainly non-negative. llvm-svn: 154444
-
- Apr 10, 2012
-
-
-
Duncan Sands authored
multiplication by a denormal, and some tests checking that. llvm-svn: 154431
-
Bill Wendling authored
StringMap. This was redundant and unnecessarily bloated the MDString class. Because the MDString class is a "Value" and will never have a "name", and because the Name field in the Value class is a pointer to a StringMap entry, we repurpose the Name field for an MDString. It stores the StringMap entry in the Name field, and uses the normal methods to get the string (name) back. PR12474 llvm-svn: 154429
-
Chad Rosier authored
llvm-svn: 154427
-
Chad Rosier authored
llvm-svn: 154426
-
Eric Christopher authored
llvm-svn: 154425
-
Kostya Serebryany authored
a write to the same temp follows in the same BB. Also add stats printing. On Spec CPU2006 this optimization saves roughly 4% of instrumented reads (which is 3% of all instrumented accesses): Writes : 161216 Reads : 446458 Reads-before-write: 18295 llvm-svn: 154418
-
Eric Christopher authored
don't elide the branch instruction if it's the only one in the block, otherwise it's ok. PR9796 and rdar://11215207 llvm-svn: 154417
-
Owen Anderson authored
llvm-svn: 154414
-
Jim Grosbach authored
We were incorrectly conflating some add variants which don't have a cc_out operand with the mirroring sub encodings, which do. Part of the awesome non-orthogonality legacy of thumb1. Similarly, handling of add/sub of an immediate was sometimes incorrectly removing the cc_out operand for add/sub register variants. rdar://11216577 llvm-svn: 154411
-
David Blaikie authored
llvm-svn: 154398
-
Nadav Rotem authored
of the same size as the compared values. This is ture for SSE/AVX/NEON but not for all targets. llvm-svn: 154397
-
Nadav Rotem authored
blendv uses a register for the selection while vblend uses an immediate. On sandybridge they still have the same latency and execute on the same execution ports. llvm-svn: 154396
-
Chandler Carruth authored
the loop header has a non-loop predecessor which has been pre-fused into its chain due to unanalyzable branches. In this case, rotating the header into the body of the loop in order to place a loop exit at the bottom of the loop is a Very Bad Idea as it makes the loop non-contiguous. I'm working on a good test case for this, but it's a bit annoynig to craft. I should get one shortly, but I'm submitting this now so I can begin the (lengthy) performance analysis process. An initial run of LNT looks really, really good, but there is too much noise there for me to trust it much. llvm-svn: 154395
-
Anton Korobeynikov authored
This fixes PR12516 and uncovers one weird problem in legalize (workarounded) llvm-svn: 154394
-
David Chisnall authored
Patch by Dmitri Shubin! llvm-svn: 154391
-
Duncan Sands authored
rational number, eg as 2.5 rather than 5, 2. OK'd by Peter Collingbourne. llvm-svn: 154387
-
Andrew Trick authored
Take this opportunity to generalize the indirectbr bailout logic for loop transformations. CFG transformations will never get indirectbr right, and there's no point trying. llvm-svn: 154386
-
Andrew Trick authored
llvm-svn: 154385
-
Andrew Trick authored
Recent refactoring introduced a bug. Fix: added buildRegUnitSets. llvm-svn: 154382
-
Evan Cheng authored
llvm-svn: 154379
-
Evan Cheng authored
llvm-svn: 154378
-
Andrew Trick authored
Jakob's review. llvm-svn: 154377
-
Andrew Trick authored
llvm-svn: 154375
-
Andrew Trick authored
This is a new algorithm that finds sets of register units that can be used to model registers pressure. This handles arbitrary, overlapping register classes. Each register class is associated with a (small) list of pressure sets. These are the dimensions of pressure affected by the register class's liveness. llvm-svn: 154374
-
Andrew Trick authored
This is a new algorithm that associates registers with weighted register units to accuretely model their effect on register pressure. This handles registers with multiple overlapping subregisters. It is possible, but almost inconceivable that the algorithm fails to find an exact solution for a target description. If an exact solution cannot be found, an inexact, but reasonable solution will be chosen. llvm-svn: 154373
-
Andrew Trick authored
llvm-svn: 154372
-
Danil Malyshev authored
llvm-svn: 154371
-
Evan Cheng authored
legalizer always use the DAG entry node. This is wrong when the libcall is emitted as a tail call since it effectively folds the return node. If the return node's input chain is not the entry (i.e. call, load, or store) use that as the tail call input chain. PR12419 rdar://9770785 rdar://11195178 llvm-svn: 154370
-
Rafael Espindola authored
not fit in a i64. llvm-svn: 154364
-
Jim Grosbach authored
Generalized logic of r154141. llvm-svn: 154362
-
Lang Hames authored
llvm-svn: 154359
-
Bill Wendling authored
Revert the 'EnableInitializing' flag. There is debate on whether we should run that pass by default in LTO. llvm-svn: 154356
-
Bill Wendling authored
Apply the scope restrictions after parsing the command line options. There may be some which are used in that function. llvm-svn: 154348
-
- Apr 09, 2012
-
-
Akira Hatanaka authored
GOT if jump table uses 64-bit gp-relative relocation. llvm-svn: 154341
-
Chad Rosier authored
in-register, such that we can use a single vector store rather then a series of scalar stores. For func_4_8 the generated code vldr d16, LCPI0_0 vmov d17, r0, r1 vadd.i16 d16, d17, d16 vmov.u16 r0, d16[3] strb r0, [r2, #3] vmov.u16 r0, d16[2] strb r0, [r2, #2] vmov.u16 r0, d16[1] strb r0, [r2, #1] vmov.u16 r0, d16[0] strb r0, [r2] bx lr becomes vldr d16, LCPI0_0 vmov d17, r0, r1 vadd.i16 d16, d17, d16 vuzp.8 d16, d17 vst1.32 {d16[0]}, [r2, :32] bx lr I'm not fond of how this combine pessimizes 2012-03-13-DAGCombineBug.ll, but I couldn't think of a way to judiciously apply this combine. This ldrh r0, [r0, #4] strh r0, [r1] becomes vldr d16, [r0] vmov.u16 r0, d16[2] vmov.32 d16[0], r0 vuzp.16 d16, d17 vst1.32 {d16[0]}, [r1, :32] PR11158 rdar://10703339 llvm-svn: 154340
-
Lang Hames authored
This patch restores TwoAddressInstructionPass's pre-r153892 behaviour when rescheduling instructions in TryInstructionTransform. Hopefully this will fix PR12493. To refix PR11861, lowering of INSERT_SUBREGS is deferred until after the copy that unties the operands is emitted (this seems to be a more appropriate fix for that issue anyway). llvm-svn: 154338
-
Chad Rosier authored
llvm-svn: 154336
-