- Jan 08, 2013
-
-
Eric Christopher authored
llvm-svn: 171905
-
Eli Bendersky authored
method because getContents().size() already covers it. So computeFragmentSize can use the generic MCEncodedFragment interface when querying both Data and Relaxable fragments for contents sizes. No change in functionality llvm-svn: 171903
-
Nick Kledzik authored
Stop using BumpPtrAllocator for HNodes because they have fields (vector, map) which require HNode destructors to be run. llvm-svn: 171896
-
Jack Carter authored
an R_MIPS_GPREL16 relocation. Contributer: Jack Carter llvm-svn: 171882
-
Jack Carter authored
value in the 64 bit .eh_frame section. It doesn't however allow exception handling to work yet since it depends on the correct relocation model being set in the ELF header flags. Contributer: Jack Carter llvm-svn: 171881
-
Preston Gurd authored
The current Intel Atom microarchitecture has a feature whereby when a function returns early then it is slightly faster to execute a sequence of NOP instructions to wait until the return address is ready, as opposed to simply stalling on the ret instruction until the return address is ready. When compiling for X86 Atom only, this patch will run a pass, called "X86PadShortFunction" which will add NOP instructions where less than four cycles elapse between function entry and return. It includes tests. This patch has been updated to address Nadav's review comments - Optimize only at >= O1 and don't do optimization if -Os is set - Stores MachineBasicBlock* instead of BBNum - Uses DenseMap instead of std::map - Fixes placement of braces Patch by Andy Zhang. llvm-svn: 171879
-
Eli Bendersky authored
llvm-svn: 171872
-
Nadav Rotem authored
Code cleanup: refactor the switch statements in the generation of reduction variables into an IR builder call. llvm-svn: 171871
-
Nadav Rotem authored
llvm-svn: 171868
-
Tim Northover authored
llvm-svn: 171867
-
Tim Northover authored
llvm-svn: 171866
-
Bill Wendling authored
PR14782 llvm-svn: 171846
-
Chandler Carruth authored
one file where it is called as a static function. Nuke the declaration and the definition in lib/CodeGen, along with the include of SelectionDAG.h from this file. There is no dependency edge from lib/CodeGen to lib/CodeGen/SelectionDAG, so it isn't valid for a routine in lib/CodeGen to reference the DAG. There is a dependency from lib/CodeGen/SelectionDAG on lib/CodeGen. This breaks one violation of this layering. llvm-svn: 171842
-
Eric Christopher authored
make sure that vector types do work. llvm-svn: 171833
-
Eric Christopher authored
llvm-svn: 171832
-
Lenny Maiorani authored
llvm-svn: 171829
-
David Blaikie authored
llvm-svn: 171826
-
Eli Bendersky authored
No change in functionality. llvm-svn: 171822
-
Eric Christopher authored
llvm-svn: 171821
-
Jakob Stoklund Olesen authored
Previously, 4 bits were unused. llvm-svn: 171814
-
Jakob Stoklund Olesen authored
This shrinks MachineInstr to 64 bytes (from 72). llvm-svn: 171813
-
Nadav Rotem authored
llvm-svn: 171812
-
- Jan 07, 2013
-
-
Shuxin Yang authored
Thank Eric Christopher for figuring out these problems! llvm-svn: 171805
-
Eric Christopher authored
llvm-svn: 171804
-
Eric Christopher authored
llvm-svn: 171803
-
Nadav Rotem authored
LoopVectorizer: When we vectorizer and widen loops we process many elements at once. This is a good thing, except for small loops. On small loops post-loop that handles scalars (and runs slower) can take more time to execute than the rest of the loop. This patch disables widening of loops with a small static trip count. llvm-svn: 171798
-
Eli Bendersky authored
bundling. The document describing this feature and the implementation has also been updated: https://sites.google.com/a/chromium.org/dev/nativeclient/pnacl/aligned-bundling-support-in-llvm llvm-svn: 171797
-
Shuxin Yang authored
o. X/C1 * C2 => X * (C2/C1) (if C2/C1 is neither special FP nor denormal) o. X/C1 * C2 -> X/(C1/C2) (if C2/C1 is either specical FP or denormal, but C1/C2 is a normal Fp) Let MDC denote multiplication or dividion with one & only one operand being a constant o. (MDC ± C1) * C2 => (MDC * C2) ± (C1 * C2) (so long as the constant-folding doesn't yield any denormal or special value) llvm-svn: 171793
-
Michael Gottesman authored
llvm-svn: 171791
-
Jim Grosbach authored
llvm-svn: 171790
-
Jim Grosbach authored
s/X86/ARM/ llvm-svn: 171789
-
Chad Rosier authored
parsing MS-style inline assembly. llvm-svn: 171784
-
Eric Christopher authored
llvm-svn: 171780
-
Eric Christopher authored
proposal. This leaves the strings in the skeleton die as strp, but in all dwo files they're accessed now via DW_FORM_GNU_str_index. Add support for dumping these sections and modify the fission-cu.ll testcase to have the correct strings and form. Fix a small bug in the fixed form sizes routine that involved out of array accesses for the table and add a FIXME in the extractFast routine to fix this up. llvm-svn: 171779
-
Bill Schmidt authored
code generation. Variables addressed through a GlobalAlias were not being handled, and variables with available_externally linkage were treated incorrectly. The patch contains two new tests to verify the correct code generation for these cases. llvm-svn: 171778
-
Jordan Rose authored
This is necessary not only for representing empty ranges, but for handling multibyte characters in the input. (If the end pointer in a range refers to a multibyte character, should it point to the beginning or the end of the character in a char array?) Some of the code in the asm parsers was already assuming this anyway. llvm-svn: 171765
-
Shuxin Yang authored
llvm-svn: 171764
-
Quentin Colombet authored
turning a code like this: if (foo) free(foo) into that: free(foo) Move a call to free from basic block FB into FB's predecessor, P, when the path from P to FB is taken only if the argument of free is not equal to NULL. Some restrictions apply on P and FB to be sure that this code motion is profitable. Namely: 1. FB must have only one predecessor P. 2. FB must contain only the call to free plus an unconditional branch to S. 3. P's successors are FB and S. Because of 1., we will not increase the code size when moving the call to free from FB to P. Because of 2., FB will be empty after the move. Because of 2. and 3., P's branch instruction becomes useless, so as FB (simplifycfg will do the job). llvm-svn: 171762
-
Chandler Carruth authored
llvm-svn: 171749
-
Chandler Carruth authored
implementation lives already. llvm-svn: 171746
-