- Dec 14, 2011
-
-
Chad Rosier authored
llvm-svn: 146568
-
Jim Grosbach authored
When 'cmp rn #imm' doesn't match due to the immediate not being representable, but 'cmn rn, #-imm' does match, use the latter in place of the former, as it's equivalent. rdar://10552389 llvm-svn: 146567
-
Chad Rosier authored
llvm-svn: 146566
-
Jim Grosbach authored
rdar://10549683 llvm-svn: 146543
-
Evan Cheng authored
to finalize MI bundles (i.e. add BUNDLE instruction and computing register def and use lists of the BUNDLE instruction) and a pass to unpack bundles. - Teach more of MachineBasic and MachineInstr methods to be bundle aware. - Switch Thumb2 IT block to MI bundles and delete the hazard recognizer hack to prevent IT blocks from being broken apart. llvm-svn: 146542
-
- Dec 13, 2011
-
-
Jim Grosbach authored
rdar://10549767 llvm-svn: 146520
-
Jim Grosbach authored
rdar://10550269 llvm-svn: 146519
-
Jim Grosbach authored
rdar://10549786 llvm-svn: 146518
-
Jim Grosbach authored
llvm-svn: 146516
-
Jim Grosbach authored
rdar://10549741 llvm-svn: 146515
-
Jim Grosbach authored
llvm-svn: 146514
-
Jim Grosbach authored
llvm-svn: 146511
-
Jim Grosbach authored
llvm-svn: 146508
-
Jim Grosbach authored
llvm-svn: 146507
-
Chad Rosier authored
load and then move the result from a GPR to a FPR. llvm-svn: 146502
-
Chandler Carruth authored
undefined result. This adds new ISD nodes for the new semantics, selecting them when the LLVM intrinsic indicates that the undef behavior is desired. The new nodes expand trivially to the old nodes, so targets don't actually need to do anything to support these new nodes besides indicating that they should be expanded. I've done this for all the operand types that I could figure out for all the targets. Owners of various targets, please review and let me know if any of these are incorrect. Note that the expand behavior is *conservatively correct*, and exactly matches LLVM's current behavior with these operations. Ideally this patch will not change behavior in any way. For example the regtest suite finds the exact same instruction sequences coming out of the code generator. That's why there are no new tests here -- all of this is being exercised by the existing test suite. Thanks to Duncan Sands for reviewing the various bits of this patch and helping me get the wrinkles ironed out with expanding for each target. Also thanks to Chris for clarifying through all the discussions that this is indeed the approach he was looking for. That said, there are likely still rough spots. Further review much appreciated. llvm-svn: 146466
-
Jakob Stoklund Olesen authored
Constant pool entries with different alignment may cause more alignment padding to be inserted. Compute the amount of padding needed, and try to pick the location that requires the least amount of padding. Also take the extra padding into account when the water is above the use. llvm-svn: 146458
-
- Dec 12, 2011
-
-
Daniel Dunbar authored
subdirectories to traverse into. - Originally I wanted to avoid this and just autoscan, but this has one key flaw in that new subdirectories can not automatically trigger a rerun of the llvm-build tool. This is particularly a pain when switching back and forth between trees where one has added a subdirectory, as the dependencies will tend to be wrong. This will also eliminates FIXME implicitly. llvm-svn: 146436
-
rdar://problem/10551006Bob Wilson authored
These modifiers simply select either the low or high D subregister of a Neon Q register. I've also removed the unimplemented 'p' modifier, which turns out to be a bit different than the comment here suggests and as far as I can tell was only intended for internal use in Apple's version of gcc. llvm-svn: 146417
-
Daniel Dunbar authored
llvm-svn: 146409
-
Jakob Stoklund Olesen authored
This computes the offset of the layout sucessor block, considering its alignment as well. llvm-svn: 146401
-
Jakob Stoklund Olesen authored
llvm-svn: 146400
-
Jakob Stoklund Olesen authored
Downgrade the alignment of the initial constant island when constant pool entries are moved elsewhere. This is all gated by -arm-align-constant-islands. llvm-svn: 146391
-
Jakob Stoklund Olesen authored
Also add an MCP member pointing to the machine constant pool. No functional change intended. llvm-svn: 146382
-
Jakob Stoklund Olesen authored
Order constant pool entries by descending alignment in the initial island to ensure packing and correct alignment. When the command line flag is set, also align the basic block containing the constant pool entries. This is only a partial implementation of constant island alignment. More to come. llvm-svn: 146375
-
- Dec 11, 2011
-
-
Stepan Dyatkovskiy authored
Fixed bug 9905: Failure in code selection for llvm intrinsics sqrt/exp (fix for FSQRT, FSIN, FCOS, FPOWI, FPOW, FLOG, FLOG2, FLOG10, FEXP, FEXP2). Third attempt: simplified checks in test for armv7-apple-darwin11. llvm-svn: 146341
-
- Dec 10, 2011
-
-
Chad Rosier authored
Fixed bug 9905: Failure in code selection for llvm intrinsics sqrt/exp (fix for FSQRT, FSIN, FCOS, FPOWI, FPOW, FLOG, FLOG2, FLOG10, FEXP, FEXP2). Second attempt. llvm-svn: 146328
-
Stepan Dyatkovskiy authored
Fixed bug 9905: Failure in code selection for llvm intrinsics sqrt/exp (fix for FSQRT, FSIN, FCOS, FPOWI, FPOW, FLOG, FLOG2, FLOG10, FEXP, FEXP2). Second attempt. llvm-svn: 146322
-
Jakob Stoklund Olesen authored
The split point is picked such that the newly created water has the same alignment as the function. This makes the island suitable for constant pool entries with potentially higher alignment. This also fixes an issue where the basic block was split one instruction too late, causing nonconvergence of the algorithm. <rdar://problem/10550705> There is still an issue with correctly packing differently aligned entries in the island. llvm-svn: 146314
-
Jakob Stoklund Olesen authored
llvm-svn: 146313
-
Jim Grosbach authored
llvm-svn: 146300
-
Eli Friedman authored
llvm-svn: 146299
-
Jim Grosbach authored
llvm-svn: 146296
-
- Dec 09, 2011
-
-
Jim Grosbach authored
Backwards compatibility with 'gas'. #imm is the preferered and documented syntax, but lots of existing code uses the '$' prefix, so we should support it if we can. llvm-svn: 146285
-
Jim Grosbach authored
When the immediate operand of an AND or BIC instruction isn't representable in the immediate field of the instruction, but the bitwise negation of the immediate is, assemble the instruction as the inverse operation instead with the inverted immediate as the operand. rdar://10550057 llvm-svn: 146283
-
Jim Grosbach authored
llvm-svn: 146281
-
Jim Grosbach authored
Refactor the instructions into fixed writeback and register-stride writeback variants to simplify the offset operand (no more optional register operand using reg0). This is a simpler representation and allows the assembly parser to more easily handle these instructions. Add tests for the instruction variants now supported. llvm-svn: 146278
-
Jakob Stoklund Olesen authored
llvm-svn: 146270
-
Jim Grosbach authored
llvm-svn: 146267
-
Jim Grosbach authored
llvm-svn: 146266
-