- Dec 05, 2012
-
-
Michael J. Spencer authored
llvm-svn: 169344
-
Evan Cheng authored
x ^ -1. Patch by David Majnemer. rdar://12755626 llvm-svn: 169339
-
Matt Beaumont-Gay authored
(TIL that Clang's -Wparentheses ignores 'x || y && "foo"' on purpose. Neat.) llvm-svn: 169337
-
Bill Wendling authored
class of attributes. This makes it much easier to check for errors and to reuse the code. llvm-svn: 169336
-
Nadav Rotem authored
LoopVectorizer: Increase the number of pointers that can be tested at runtime. If we cant prove statically that the pointers are disjoint then we add the runtime check. llvm-svn: 169334
-
- Dec 04, 2012
-
-
Nadav Rotem authored
llvm-svn: 169331
-
Evan Cheng authored
llvm-svn: 169325
-
Nadav Rotem authored
reduction variable is not used outside the loop then we ran into an endless loop. This change checks if we found the original PHI. llvm-svn: 169324
-
Jakob Stoklund Olesen authored
Allow the central functions to be inlined, and use the argumentless isHint() function when possible. llvm-svn: 169319
-
rdar://12329730Shuxin Yang authored
This change attempts to simplify (X^Y) -> X or Y in the user's context if we know that only bits from X or Y are demanded. A minimized case is provided bellow. This change will simplify "t>>16" into "var1 >>16". ============================================================= unsigned foo (unsigned val1, unsigned val2) { unsigned t = val1 ^ 1234; return (t >> 16) | t; // NOTE: t is used more than once. } ============================================================= Note that if the "t" were used only once, the expression would be finally optimized as well. However, with with this change, the optimization will take place earlier. Reviewed by Nadav, Thanks a lot! llvm-svn: 169317
-
David Blaikie authored
llvm-svn: 169315
-
Jyotsna Verma authored
using multiclass. llvm-svn: 169314
-
Bill Wendling authored
The count attribute is more accurate with regards to the size of an array. It also obviates the upper bound attribute in the subrange. We can also better handle an unbound array by setting the count to -1 instead of the lower bound to 1 and upper bound to 0. llvm-svn: 169312
-
David Blaikie authored
This reapplies the fix for PR13303 now with more justification. Based on my execution of the GDB 7.5 test suite this results in: expected passes: 16101 -> 20890 (+30%) unexpected failures: 4826 -> 637 (-77%) There are 23 checks that used to pass and now fail. They are all in gdb.reverse. Investigating a few looks like they were accidentally passing due to extra breakpoints being set by this bug. They're generally due to the difference in end location between gcc and clang, the test suite is trying to set breakpoints on the closing '}' that clang doesn't associate with any instructions. llvm-svn: 169304
-
Eli Bendersky authored
textually as NativeClient. Also added a link to the native client project for readers unfamiliar with it. A Clang patch will follow shortly. llvm-svn: 169291
-
Nadav Rotem authored
llvm-svn: 169288
-
Jyotsna Verma authored
instructions. llvm-svn: 169287
-
Jyotsna Verma authored
llvm-svn: 169284
-
Bill Schmidt authored
on 64-bit PowerPC ELF. The patch includes code to handle external assembly and MC output with the integrated assembler. It intentionally does not support the "old" JIT. For the initial-exec TLS model, the ABI requires the following to calculate the address of external thread-local variable x: Code sequence Relocation Symbol ld 9,x@got@tprel(2) R_PPC64_GOT_TPREL16_DS x add 9,9,x@tls R_PPC64_TLS x The register 9 is arbitrary here. The linker will replace x@got@tprel with the offset relative to the thread pointer to the generated GOT entry for symbol x. It will replace x@tls with the thread-pointer register (13). The two test cases verify correct assembly output and relocation output as just described. PowerPC-specific selection node variants are added for the two instructions above: LD_GOT_TPREL and ADD_TLS. These are inserted when an initial-exec global variable is encountered by PPCTargetLowering::LowerGlobalTLSAddress(), and later lowered to machine instructions LDgotTPREL and ADD8TLS. LDgotTPREL is a pseudo that uses the same LDrs support added for medium code model's LDtocL, with a different relocation type. The rest of the processing is straightforward. llvm-svn: 169281
-
Chandler Carruth authored
missed in the first pass because the script didn't yet handle include guards. Note that the script is now able to handle all of these headers without manual edits. =] llvm-svn: 169224
-
Nadav Rotem authored
llvm-svn: 169223
-
Chandler Carruth authored
This comment has the dual effect of blocking reorderings with the sort_include script. llvm-svn: 169221
-
Bill Wendling authored
The count field is necessary because there isn't a difference between the 'lo' and 'hi' attributes for a one-element array and a zero-element array. When the count is '0', we know that this is a zero-element array. When it's >=1, then it's a normal constant sized array. When it's -1, then the array is unbounded. llvm-svn: 169218
-
Nadav Rotem authored
Add the last part that is needed for vectorization of if-converted code. Added the code that actually performs the if-conversion during vectorization. We can now vectorize this code: for (int i=0; i<n; ++i) { unsigned k = 0; if (a[i] > b[i]) <------ IF inside the loop. k = k * 5 + 3; a[i] = k; <---- K is a phi node that becomes vector-select. } llvm-svn: 169217
-
Kostya Serebryany authored
[asan] add experimental -asan-realign-stack option (true by default, which does not change the current behavior) llvm-svn: 169216
-
Matt Beaumont-Gay authored
llvm-svn: 169214
-
Jyotsna Verma authored
llvm-svn: 169213
-
Jyotsna Verma authored
llvm-svn: 169212
-
rdar://12329730Shuxin Yang authored
The type of shirt-right (logical or arithemetic) should remain unchanged when transforming "X << C1 >> C2" into "X << (C1-C2)" llvm-svn: 169209
-
Alexey Samsonov authored
ASan: add initial support for handling llvm.lifetime intrinsics in ASan - emit calls into runtime library that poison memory for local variables when their lifetime is over and unpoison memory when their lifetime begins. llvm-svn: 169200
-
Jakub Staszak authored
llvm-svn: 169198
-
Manman Ren authored
the alignment is clamped to TargetFrameLowering.getStackAlignment if the target does not support stack realignment or the option "realign-stack" is off. This will cause miscompile if the address is treated as aligned and add is replaced with or in DAGCombine. Added a bool StackRealignable to TargetFrameLowering to check whether stack realignment is implemented for the target. Also added a bool RealignOption to MachineFrameInfo to check whether the option "realign-stack" is on. rdar://12713765 llvm-svn: 169197
-
Jakub Staszak authored
llvm-svn: 169196
-
NAKAMURA Takumi authored
llvm-svn: 169195
-
NAKAMURA Takumi authored
llvm-svn: 169194
-
Jakob Stoklund Olesen authored
These functions have been replaced by TRI::getRegAllocationHints() which provides the same capabilities. llvm-svn: 169192
-
Jakob Stoklund Olesen authored
Now that there can be multiple hint registers from targets, it doesn't make sense to have a function that returns 'the' preferred register. llvm-svn: 169190
-
Jakob Stoklund Olesen authored
Targets can provide multiple hints now, so getRegAllocPref() doesn't make sense any longer because it only returns one preferred register. Replace it with getSimpleHint() in the remaining heuristics. This function only llvm-svn: 169188
-
Manman Ren authored
No functional change for this commit. The follow-up patch will add more stuff to these functions. rdar://12713765 llvm-svn: 169186
-
NAKAMURA Takumi authored
llvm-svn: 169183
-