summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* Appease GCC's -Wparentheses.Matt Beaumont-Gay2012-12-041-2/+2
| | | | | | (TIL that Clang's -Wparentheses ignores 'x || y && "foo"' on purpose. Neat.) llvm-svn: 169337
* Split up the ParseOptionalAttrs method into three different methods for eachBill Wendling2012-12-042-81/+122
| | | | | | | class of attributes. This makes it much easier to check for errors and to reuse the code. llvm-svn: 169336
* LoopVectorizer: Increase the number of pointers that can be tested at ↵Nadav Rotem2012-12-041-1/+1
| | | | | | runtime. If we cant prove statically that the pointers are disjoint then we add the runtime check. llvm-svn: 169334
* Enable if-conversion during vectorization.Nadav Rotem2012-12-041-1/+1
| | | | llvm-svn: 169331
* ARM custom lower ctpop for vector types. Patch by Pete Couperus.Evan Cheng2012-12-042-0/+308
| | | | llvm-svn: 169325
* Fix a bug in vectorization of if-converted reduction variables. If theNadav Rotem2012-12-042-14/+58
| | | | | | | 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
* Speed up the AllocationOrder class a bit.Jakob Stoklund Olesen2012-12-043-25/+19
| | | | | | | Allow the central functions to be inlined, and use the argumentless isHint() function when possible. llvm-svn: 169319
* For rdar://12329730, last piece.Shuxin Yang2012-12-044-5/+34
| | | | | | | | | | | | | | | | | | | | | 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
* Comment change made in r169304 as requested by Eric Christopher.David Blaikie2012-12-041-0/+2
| | | | llvm-svn: 169315
* Define store instructions with base+register offset addressing modeJyotsna Verma2012-12-041-352/+116
| | | | | | using multiclass. llvm-svn: 169314
* Use the 'count' attribute to calculate the upper bound of an array.Bill Wendling2012-12-0423-39/+43
| | | | | | | | | 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
* docs: Begin Sphinxification of docs/tutorial/Sean Silva2012-12-043-49/+38
| | | | llvm-svn: 169309
* docs: fixup legacy HTML linkSean Silva2012-12-041-2/+1
| | | | llvm-svn: 169308
* Reapply r160148 (reverted in r163570) fixing spurious breakpoints in modern GDBDavid Blaikie2012-12-042-1/+29
| | | | | | | | | | | | | | | | | 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
* Remove a URL from codeEli Bendersky2012-12-041-1/+1
| | | | llvm-svn: 169293
* Make NaCl naming consistent. The triple OSType is called NaCl and is representedEli Bendersky2012-12-044-6/+6
| | | | | | | | | 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
* Add support for reduction variables when IF-conversion is enabled. Nadav Rotem2012-12-042-10/+71
| | | | llvm-svn: 169288
* Add patterns to define 'combine', 'tstbit', 'ct0/cl0' (count ↵Jyotsna Verma2012-12-043-17/+97
| | | | | | | | trailing/leading zeros) instructions. llvm-svn: 169287
* Add constant extender support to ALU32 instructions for V2.Jyotsna Verma2012-12-041-51/+79
| | | | llvm-svn: 169284
* A test in thid directory was not being run because lit.local.cfg didn'tEli Bendersky2012-12-041-1/+1
| | | | | | include .ll files. Fix that. llvm-svn: 169283
* Fix comment typo.Duncan Sands2012-12-041-1/+1
| | | | llvm-svn: 169282
* This patch introduces initial-exec model support for thread-local storageBill Schmidt2012-12-0418-16/+216
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Update release notes for NVPTXJustin Holewinski2012-12-041-1/+24
| | | | llvm-svn: 169280
* Get rid of references to Tcl, DejagGNU, old test structure, discourage the useEli Bendersky2012-12-041-106/+57
| | | | | | of grep in favor of FileCheck, and other cleanups. llvm-svn: 169269
* Remove the very out-of-date listing of "very important LLVM areas". I don'tEli Bendersky2012-12-041-12/+1
| | | | | | think it adds much and keeping it up-to-date is (obviously) a chore. llvm-svn: 169263
* Improve MSan tests.Evgeniy Stepanov2012-12-041-54/+60
| | | | llvm-svn: 169256
* KillTheDoctor.cpp: Restore Win32 SDK headers before r169251.NAKAMURA Takumi2012-12-041-3/+3
| | | | llvm-svn: 169255
* Clean up the sample include orderings, not that it really matters...Chandler Carruth2012-12-041-3/+1
| | | | llvm-svn: 169253
* Sort the #include lines for tools/...Chandler Carruth2012-12-0449-222/+208
| | | | | | | | Again, tools are trickier to pick the main module header for than library source files. I've started to follow the pattern of using LLVMContext.h when it is included as a stub for program source files. llvm-svn: 169252
* Sort the #include lines for utils/...Chandler Carruth2012-12-0439-91/+79
| | | | | | | I've tried to find main moudle headers where possible, but the TableGen stuff may warrant someone else looking at it. llvm-svn: 169251
* Sort the #include lines for unittest/...Chandler Carruth2012-12-0449-131/+103
| | | | llvm-svn: 169250
* Sort the #include lines of the examples/... tree.Chandler Carruth2012-12-0413-54/+54
| | | | llvm-svn: 169249
* Teach the include sorter to quickly skip files with an extension thatChandler Carruth2012-12-041-1/+5
| | | | | | | | doesn't look like it will have C++ code in it. Suggestions on a better heuristic are welcome. llvm-svn: 169248
* Teach the include sorter to skip files under test trees and under INPUTSChandler Carruth2012-12-041-0/+5
| | | | | | | trees. This allows running the input sorter on the entire clang repository cleanly now. llvm-svn: 169247
* Teach the include sorting script about the gtest headers; sort them withChandler Carruth2012-12-041-1/+1
| | | | | | the system headers. llvm-svn: 169242
* VMCoreTests/PassManagerTest.cpp: Appease msvc not to do "using llvm::Pass" ↵NAKAMURA Takumi2012-12-041-0/+2
| | | | | | | in class template. FIXME: I have not checked whether to be compiled on msvc11. llvm-svn: 169225
* Sort includes for all of the .h files under the 'lib' tree. These wereChandler Carruth2012-12-0484-173/+170
| | | | | | | | | | 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
* Give scalar if-converted blocks half the score because they are not always ↵Nadav Rotem2012-12-041-5/+5
| | | | | | executed due to CF. llvm-svn: 169223
* Address review comments from Matt on the sort_includes.py script.Chandler Carruth2012-12-041-10/+9
| | | | | | | | | | | | | | | 1) Teach it to handle files with #include on the first line -- these do actually exist in LLVM. 2) Support llvm-c and clang-c include projects. 3) Nuke some stail imports. 4) Switch to using os.path to split the file extension off. 5) Remove debugging leftovers. 6) Add docstring (a really puny one) for the sort function. I'm continuing te avoid stripping the whitespace on the RHS to preserve whatever newline characters happen to be in the original file. llvm-svn: 169222
* Add a comment about the requirement that the Windows.h header be last.Chandler Carruth2012-12-041-0/+2
| | | | | | | This comment has the dual effect of blocking reorderings with the sort_include script. llvm-svn: 169221
* Add a 'count' field to the DWARF subrange.Bill Wendling2012-12-0419-18/+158
| | | | | | | | | 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
* Add the last part that is needed for vectorization of if-converted code.Nadav Rotem2012-12-042-162/+311
| | | | | | | | | | | | | | | | | 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
* [asan] add experimental -asan-realign-stack option (true by default, which ↵Kostya Serebryany2012-12-041-2/+7
| | | | | | does not change the current behavior) llvm-svn: 169216
* Add a 'getCount' method to get the number of elements in the subrange.Bill Wendling2012-12-041-0/+1
| | | | llvm-svn: 169215
* Add 'using' declarations to suppress -Woverloaded-virtual warnings.Matt Beaumont-Gay2012-12-045-0/+12
| | | | llvm-svn: 169214
* Move all operand definitions into HexagonOperands.tdJyotsna Verma2012-12-042-53/+57
| | | | llvm-svn: 169213
* Move generic Hexagon subtarget information into Hexagon.tdJyotsna Verma2012-12-042-64/+101
| | | | llvm-svn: 169212
* docs: Fix broken link.Sean Silva2012-12-041-1/+2
| | | | llvm-svn: 169211
* docs: Fix dead link.Sean Silva2012-12-041-2/+2
| | | | | | | Apparently Dinkumware are no longer hosting their nice reference manuals. Thankfully, `cppreference.com` can fill that role well. llvm-svn: 169210
* rdar://12329730 (2nd part, revised)Shuxin Yang2012-12-042-2/+3
| | | | | | | The type of shirt-right (logical or arithemetic) should remain unchanged when transforming "X << C1 >> C2" into "X << (C1-C2)" llvm-svn: 169209
OpenPOWER on IntegriCloud