summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* Move the default back to pipefail. I accidentally reverted it before.Rafael Espindola2013-07-261-1/+1
| | | | llvm-svn: 187271
* Propagate pipefail when cloning.Rafael Espindola2013-07-261-4/+6
| | | | llvm-svn: 187268
* SLP Vectorier: Don't vectorize really short chains because they are already ↵Nadav Rotem2013-07-262-3/+9
| | | | | | handled by the SelectionDAG store-vectorizer, which does a better job in deciding when to vectorize. llvm-svn: 187267
* SLP Vectorizer: Disable the vectorization of non power of two chains, such ↵Nadav Rotem2013-07-263-49/+39
| | | | | | as <3 x float>, because we dont have a good cost model for these types. llvm-svn: 187265
* Use pipefail when available.Rafael Espindola2013-07-266-3/+18
| | | | | | | | | | | | | | This change makes test with RUN lines like RUN: opt ... | FileCheck fail if opt fails, even if it prints what FileCheck wants. Enabling this found some interesting cases of broken tests that were not being noticed because opt (or some other tool) was crashing late. Pipefail is used when the shell supports it or when using the internal python based tester. llvm-svn: 187261
* next batch of -disable-debug-info-verifierRafael Espindola2013-07-265-5/+5
| | | | llvm-svn: 187260
* Revert "[PowerPC] Improve consistency in use of __ppc__, __powerpc__, etc."Rafael Espindola2013-07-265-9/+8
| | | | | | This reverts commit r187248. It broke many bots. llvm-svn: 187254
* Fix variable name.Owen Anderson2013-07-261-2/+2
| | | | llvm-svn: 187253
* Re-enabling the C4065 warning for MSVC builds as it no longer fires due to ↵Aaron Ballman2013-07-261-1/+0
| | | | | | tablegen. llvm-svn: 187252
* Use a non-c'tor for converting a boolean into a StringRef.Bill Wendling2013-07-261-4/+4
| | | | llvm-svn: 187250
* When InstCombine tries to fold away (fsub x, (fneg y)) into (fadd x, y), it isOwen Anderson2013-07-262-1/+25
| | | | | | | also worthwhile for it to look through FP extensions and truncations, whose application commutes with fneg. llvm-svn: 187249
* [PowerPC] Improve consistency in use of __ppc__, __powerpc__, etc.Bill Schmidt2013-07-265-8/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | Both GCC and LLVM will implicitly define __ppc__ and __powerpc__ for all PowerPC targets, whether 32- or 64-bit. They will both implicitly define __ppc64__ and __powerpc64__ for 64-bit PowerPC targets, and not for 32-bit targets. We cannot be sure that all other possible compilers used to compile Clang/LLVM define both __ppc__ and __powerpc__, for example, so it is best to check for both when relying on either inside the Clang/LLVM code base. This patch makes sure we always check for both variants. In addition, it fixes one unnecessary check in lib/Target/PowerPC/PPCJITInfo.cpp. (At least one of __ppc__ and __powerpc__ should always be defined when compiling for a PowerPC target, no matter which compiler is used, so testing for them is unnecessary.) There are some places in the compiler that check for other variants, like __POWERPC__ and _POWER, and I have left those in place. There is no need to add them elsewhere. This seems to be in Apple-specific code, and I won't take a chance on breaking it. There is no intended change in behavior; thus, no test cases are added. llvm-svn: 187248
* Use more parens to clarify assert.Eric Christopher2013-07-261-1/+1
| | | | llvm-svn: 187247
* Remove addLetterToHash, no functional change.Eric Christopher2013-07-261-10/+1
| | | | llvm-svn: 187245
* [mips] Implement llvm.trap intrinsic.Akira Hatanaka2013-07-263-0/+18
| | | | | | Patch by Sasa Stankovic. llvm-svn: 187244
* [mips] Fix FP conditional move instructions to have explicit FP condition codeAkira Hatanaka2013-07-266-13/+50
| | | | | | register operands. llvm-svn: 187242
* Add missing 'n'.Rafael Espindola2013-07-261-1/+1
| | | | | | Thanks to Han Finkel for noticing it. llvm-svn: 187241
* [mips] Fix FP branch instructions to have explicit FP condition code registerAkira Hatanaka2013-07-269-25/+65
| | | | | | operands. llvm-svn: 187238
* Debug Info Verifier: enable verification of DICompileUnit.Manman Ren2013-07-2672-220/+268
| | | | | | | | We used to call Verify before adding DICompileUnit to the list, and now we remove the check and always add DICompileUnit to the list in DebugInfoFinder, so we can verify them later on. llvm-svn: 187237
* [mips] Increase the number of floating point condition code registers to eight.Akira Hatanaka2013-07-261-3/+5
| | | | llvm-svn: 187234
* [mips] Fix floating point branch, comparison, and conditional move instructionsAkira Hatanaka2013-07-262-4/+4
| | | | | | | | | to have register FCC0 (the first floating point condition code register) in their Uses/Defs list. No intended functionality change. llvm-svn: 187233
* [mips] Delete register print method MipsInstPrinter::printCPURegs that is notAkira Hatanaka2013-07-263-11/+5
| | | | | | | | needed. The generic method printOperand will do. No functionality change. llvm-svn: 187231
* [mips] Print instructions "beq", "bne" and "or" using assembler pseudoAkira Hatanaka2013-07-268-32/+92
| | | | | | | | | | instructions "beqz", "bnez" and "move", when possible. beq $2, $zero, $L1 => beqz $2, $L1 bne $2, $zero, $L1 => bnez $2, $L1 or $2, $3, $zero => move $2, $3 llvm-svn: 187229
* Remove trailing whitespace.Stephen Lin2013-07-261-2/+2
| | | | llvm-svn: 187226
* Correct case of m_UIToFp to m_UIToFP to match instruction name, add m_SIToFP ↵Stephen Lin2013-07-262-5/+12
| | | | | | for consistency. llvm-svn: 187225
* Collapse conditional and add an assert for unhandled scope types.Eric Christopher2013-07-261-3/+1
| | | | llvm-svn: 187224
* Re-add DataLayout pointer size convenience functions.Matt Arsenault2013-07-262-0/+22
| | | | | | | | These were reverted in r167222 along with the rest of the last different address space pointer size attempt. These will be used in later commits. llvm-svn: 187223
* Move this to the X86 directory, unfortunately the hashes are notEric Christopher2013-07-261-0/+0
| | | | | | endian independent. llvm-svn: 187222
* Regenerate.Eric Christopher2013-07-262-638/+45
| | | | llvm-svn: 187217
* Add preliminary support for hashing DIEs and breaking them intoEric Christopher2013-07-266-4/+370
| | | | | | | | | | | | | | | | type units. Initially this support is used in the computation of an ODR checker for C++. For now we're attaching it to the DIE, but in the future it will be attached to the type unit. This also starts breaking out types into the separation for type units, but without actually splitting the DIEs. In preparation for hashing the DIEs this adds a DIEString type that contains a StringRef with the string contained at the label. llvm-svn: 187213
* Add a way to get the context of any particular scope.Eric Christopher2013-07-262-0/+28
| | | | llvm-svn: 187212
* Remove dead or useless header checks from cmake and autoconfReid Kleckner2013-07-2610-252/+12
| | | | | | | | | | On Windows, this improves clean cmake configuration time on my workstation from 1m58s to 1m32s, which is pretty significant. There's probably more that can be done here, but this is the low hanging fruit. Eric volunteered to regenerate ./configure for me. llvm-svn: 187209
* Extend the lifetime of the strings passed to posix_spawn_file_actions_addopen.Rafael Espindola2013-07-261-7/+21
| | | | | | Thanks to Hal Finkel for finding the bug and for the initial patch. llvm-svn: 187208
* Improve our error handling on windows.Rafael Espindola2013-07-261-38/+1
| | | | | | | | | | | | | | * Remove LLVM_ENABLE_CRT_REPORT. LLVM_DISABLE_CRASH_REPORT made it redundant. * set Return to 1, so that we get a stack trace on failure. * don't call _exit, so that we get a negative exit value and "not --crash" correctly differentiates crashes and regular errors. This is a bit experimental since the documentation on this interface is sparse. It doesn't bring up a dialog on my windows setup, but feel free to revert if it causes problem for your setup (and let me know what it is so that I can try to fix this patch). llvm-svn: 187206
* Next batch of -disable-debug-info-verifier.Rafael Espindola2013-07-265-5/+5
| | | | | | These tests fail without it if pipefail is enabled. llvm-svn: 187205
* Add a target legalize hook for SplitVectorOperand (again)Justin Holewinski2013-07-264-1/+48
| | | | | | | | | | | | | | CustomLowerNode was not being called during SplitVectorOperand, meaning custom legalization could not be used by targets. This also adds a test case for NVPTX that depends on this custom legalization. Differential Revision: http://llvm-reviews.chandlerc.com/D1195 Attempt to fix the buildbots by making the X86 test I just added platform independent llvm-svn: 187202
* Revert "Add a target legalize hook for SplitVectorOperand"Rafael Espindola2013-07-264-46/+1
| | | | | | | | | | This reverts commit 187198. It broke the bots. The soft float test probably needs a -triple because of name differences. On the hard float test I am getting a "roundss $1, %xmm0, %xmm0", instead of "vroundss $1, %xmm0, %xmm0, %xmm0". llvm-svn: 187201
* Add a target legalize hook for SplitVectorOperandJustin Holewinski2013-07-264-1/+46
| | | | | | | | | | | | CustomLowerNode was not being called during SplitVectorOperand, meaning custom legalization could not be used by targets. This also adds a test case for NVPTX that depends on this custom legalization. Differential Revision: http://llvm-reviews.chandlerc.com/D1195 llvm-svn: 187198
* test commitRichard Osborne2013-07-261-1/+1
| | | | llvm-svn: 187195
* [XCore] Add TODO regarding byval structsRichard Osborne2013-07-261-0/+2
| | | | llvm-svn: 187193
* Re-implement the analysis of uses in mem2reg to be significantly moreChandler Carruth2013-07-263-113/+227
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | robust. It now uses an InstVisitor and worklist to actually walk the uses of the Alloca transitively and detect the pattern which we can directly promote: loads & stores of the whole alloca and instructions we can completely ignore. Also, with this new implementation teach both the predicate for testing whether we can promote and the promotion engine itself to use the same code so we no longer have strange divergence between the two code paths. I've added some silly test cases to demonstrate that we can handle slightly more degenerate code patterns now. See the below for why this is even interesting. Performance impact: roughly 1% regression in the performance of SROA or ScalarRepl on a large C++-ish test case where most of the allocas are basically ready for promotion. The reason is because of silly redundant work that I've left FIXMEs for and which I'll address in the next commit. I wanted to separate this commit as it changes the behavior. Once the redundant work in removing the dead uses of the alloca is fixed, this code appears to be faster than the old version. =] So why is this useful? Because the previous requirement for promotion required a *specific* visit pattern of the uses of the alloca to verify: we *had* to look for no more than 1 intervening use. The end goal is to have SROA automatically detect when an alloca is already promotable and directly hand it to the mem2reg machinery rather than trying to partition and rewrite it. This is a 25% or more performance improvement for SROA, and a significant chunk of the delta between it and ScalarRepl. To get there, we need to make mem2reg actually capable of promoting allocas which *look* promotable to SROA without have SROA do tons of work to massage the code into just the right form. This is actually the tip of the iceberg. There are tremendous potential savings we can realize here by de-duplicating work between mem2reg and SROA. llvm-svn: 187191
* Add test cases for the various instruction alias and Intel syntax fixes that ↵Craig Topper2013-07-263-17/+380
| | | | | | have gone in lately. llvm-svn: 187188
* Fix more Intel syntax issues with FP instruction aliases. Test cases coming ↵Craig Topper2013-07-261-8/+8
| | | | | | in a subsequent patch. llvm-svn: 187187
* Make .bc en/decoding of AttrKind stableTobias Grosser2013-07-266-4/+493
| | | | | | | | | | | | | | | The bitcode representation attribute kinds are encoded into / decoded from should be independent of the current set of LLVM attributes and their position in the AttrKind enum. This patch explicitly encodes attributes to fixed bitcode values. With this patch applied, LLVM does not silently misread attributes written by LLVM 3.3. We also enhance the decoding slightly such that an error message is printed if an unknown AttrKind encoding was dected. Bonus: Dropping bitcode attributes from AttrKind is now easy, as old AttrKinds do not need to be kept to support the Bitcode reader. llvm-svn: 187186
* Take advantage of the register enums being in order to remove a couple ↵Craig Topper2013-07-261-18/+4
| | | | | | static tables. llvm-svn: 187182
* [PowerPC] Support powerpc64le as a syntax-checking target.Bill Schmidt2013-07-2622-17/+73
| | | | | | | | | | | | | | | | | | | | | | | This patch provides basic support for powerpc64le as an LLVM target. However, use of this target will not actually generate little-endian code. Instead, use of the target will cause the correct little-endian built-in defines to be generated, so that code that tests for __LITTLE_ENDIAN__, for example, will be correctly parsed for syntax-only testing. Code generation will otherwise be the same as powerpc64 (big-endian), for now. The patch leaves open the possibility of creating a little-endian PowerPC64 back end, but there is no immediate intent to create such a thing. The LLVM portions of this patch simply add ppc64le coverage everywhere that ppc64 coverage currently exists. There is nothing of any import worth testing until such time as little-endian code generation is implemented. In the corresponding Clang patch, there is a new test case variant to ensure that correct built-in defines for little-endian code are generated. llvm-svn: 187179
* Add a bool->StringRef c'tor to StringRef.Bill Wendling2013-07-251-0/+4
| | | | llvm-svn: 187166
* Phabricator.rst: tiny fixHans Wennborg2013-07-251-1/+1
| | | | llvm-svn: 187164
* Using a different loop induction variable than the enclosing scope. No ↵Aaron Ballman2013-07-251-2/+2
| | | | | | functional changes intended. llvm-svn: 187159
* PPC32 va_list is an actual structure so va_copy needs to copy the wholeRoman Divacky2013-07-253-1/+47
| | | | | | | structure not just a pointer. This implements that and thus fixes va_copy on PPC32. Fixes #15286. Both bug and patch by Florian Zeitz! llvm-svn: 187158
OpenPOWER on IntegriCloud