summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Don't create an archive if, for example, we are asked to print the index.Rafael Espindola2013-07-052-2/+36
| | | | llvm-svn: 185697
* [SystemZ] Clean up register scavenging codeRichard Sandiford2013-07-056-62/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | SystemZ wants normal register scavenging slots, as close to the stack or frame pointer as possible. The only reason it was using custom code was because PrologEpilogInserter assumed an x86-like layout, where the frame pointer is at the opposite end of the frame from the stack pointer. This meant that when frame pointer elimination was disabled, the slots ended up being as close as possible to the incoming stack pointer, which is the opposite of what we want on SystemZ. This patch adds a new knob to say which layout is used and converts SystemZ to use target-independent scavenging slots. It's one of the pieces needed to support frame-to-frame MVCs, where two slots might be required. The ABI requires us to allocate 160 bytes for calls, so one approach would be to use that area as temporary spill space instead. It would need some surgery to make sure that the slot isn't live across a call though. I stuck to the "isFPCloseToIncomingSP - ..." style comment on the "do what the surrounding code does" principle. The FP case is already covered by several Systemz/frame-* tests, which fail without the PrologueEpilogueInserter change, so no new ones are needed. No behavioural change intended. llvm-svn: 185696
* Use simpler version of exists.Rafael Espindola2013-07-051-2/+1
| | | | llvm-svn: 185695
* [PowerPC] Make test case buildable with GNU asUlrich Weigand2013-07-051-12/+7
| | | | | | | | | | | The ppc64-fixups.s test currently fails to build with GNU as, since it does not support plain symbols as arguments to li/lis. Rewrite the test for R_PPC64_ADDR16 and R_PPC64_REL16 to use lwz instead. Allowing the test case to be built with both LLVM and GNU as makes it easier to spot unwanted difference in the output. llvm-svn: 185694
* [msan] Intercept pthread_key_create.Evgeniy Stepanov2013-07-054-0/+21
| | | | llvm-svn: 185693
* [PowerPC] Support @tls in the asm parserUlrich Weigand2013-07-0511-24/+85
| | | | | | | | | | | | | | | | | | This adds support for the last missing construct to parse TLS-related assembler code: add 3, 4, symbol@tls The ADD8TLS currently hard-codes the @tls into the assembler string. This cannot be handled by the asm parser, since @tls is parsed as a symbol variant. This patch changes ADD8TLS to have the @tls suffix printed as symbol variant on output too, which allows us to remove the isCodeGenOnly marker from ADD8TLS. This in turn means that we can add a AsmOperand to accept @tls marked symbols on input. As a side effect, this means that the fixup_ppc_tlsreg fixup type is no longer necessary and can be merged into fixup_ppc_nofixup. llvm-svn: 185692
* Remove NoOperation.Rafael Espindola2013-07-051-5/+1
| | | | | | | parseCommandLine prints and error and exists if no operation is specified, so it never returns NoOperation. llvm-svn: 185691
* [PECOFF] Use yaml2obj to avoid checking in binary files.Rui Ueyama2013-07-0519-20/+489
| | | | llvm-svn: 185690
* Simplify code. No functionality change.Benjamin Kramer2013-07-051-7/+3
| | | | llvm-svn: 185689
* PR16490: fix a crash in ARMDAGToDAGISel::SelectInlineAsm.Joey Gouly2013-07-052-0/+11
| | | | | | | | | | | In the SelectionDAG immediate operands to inline asm are constructed as two separate operands. The first is a constant of value InlineAsm::Kind_Imm and the second is a constant with the value of the immediate. In ARMDAGToDAGISel::SelectInlineAsm, if we reach an operand of Kind_Imm we should skip over the next operand too. llvm-svn: 185688
* Improve detection for preventing certain kind of formatting patterns.Daniel Jasper2013-07-052-14/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a better implementation of r183097. The main purpose is to prevent certain constructs to be formatted "like a block of text". Before: aaaaaaaaaaaaa< aaaaaaaaaa, aaaaaaaaaaa, aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa>* aaaa = new aaaaaaaaaaaaa< aaaaaaaaaa, aaaaaaaaaaa, aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa>(bbbbbbbbbbbbbbbbbbbbbbbb); aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa[ bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb] = (*cccccccccccccccc)[ dddddddddddddddddddddddddddddddddddddddddddddddddddddddd]; After: aaaaaaaaaaaaa<aaaaaaaaaa, aaaaaaaaaaa, aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa>* aaaa = new aaaaaaaaaaaaa<aaaaaaaaaa, aaaaaaaaaaa, aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa>( bbbbbbbbbbbbbbbbbbbbbbbb); aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa[ bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb] = (*cccccccccccccccc)[ dddddddddddddddddddddddddddddddddddddddddddddddddddddddd]; llvm-svn: 185687
* [sanitizer] Disable ptrace interception on non-x86(_64).Evgeniy Stepanov2013-07-053-3/+6
| | | | | | Patch by Hal Finkel. llvm-svn: 185686
* Don't break after a "(" following a binary operator.Daniel Jasper2013-07-052-4/+13
| | | | | | | | | | | | | | | | Additionally, allow breaking after c-style casts, but with a high penalty. Before: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa *foo = ( aaaaaaaaaaaaaaaaa *)bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb; After: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa *foo = (aaaaaaaaaaaaaaaaa *) bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb; This fixes llvm.org/PR16049. llvm-svn: 185685
* Sema: Call IgnoreParens fewer times in CheckAddressOfOperandDavid Majnemer2013-07-051-4/+4
| | | | llvm-svn: 185684
* Use typedef for Densemap contraining SmallVector passed to a function to ↵Craig Topper2013-07-051-6/+4
| | | | | | avoid repeating SmallVector size. llvm-svn: 185683
* Add typedefs for Densemaps containing SmallVectors to avoid repeating the ↵Craig Topper2013-07-054-12/+15
| | | | | | SmallVector size when creating iterators for the DenseMap. llvm-svn: 185682
* Don't treat bitcode files specially in llvm-ar.Rafael Espindola2013-07-055-34/+2
| | | | | | | We really want bitcode files to behave as regular object files in archives, so we don't need to track that a member is bitcode. llvm-svn: 185681
* Use the raw member names in Archive::Archive.Rafael Espindola2013-07-052-15/+11
| | | | | | | This a bit more efficient and avoids having a function that uses the string table being called by a function that searches for it. llvm-svn: 185680
* Use the new --crash option in commands that are expected to crash.Rafael Espindola2013-07-052-2/+2
| | | | llvm-svn: 185679
* Add a --crash option to not.Rafael Espindola2013-07-051-2/+21
| | | | | | | | | | | | | Now the two possible uses of not are * not cmd Will return true if cmd doesn't crash and returns false. * not --crash cmd Will return true if cmd crashes. It will be used/tested in a followup commit for the clang crash recovery testing. llvm-svn: 185678
* InstCombine: (icmp eq B, 0) | (icmp ult A, B) -> (icmp ule A, B-1)David Majnemer2013-07-052-1/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This transform allows us to turn IR that looks like: %1 = icmp eq i64 %b, 0 %2 = icmp ult i64 %a, %b %3 = or i1 %1, %2 ret i1 %3 into: %0 = add i64 %b, -1 %1 = icmp uge i64 %0, %a ret i1 %1 which means we go from lowering: cmpq %rsi, %rdi setb %cl testq %rsi, %rsi sete %al orb %cl, %al ret to lowering: decq %rsi cmpq %rdi, %rsi setae %al ret llvm-svn: 185677
* Remove use of asymmetric std::lower_bound comparator.Ahmed Bougacha2013-07-042-12/+23
| | | | | | VS 2008 doesn't like it when in debug mode. llvm-svn: 185676
* DebugInfo: Consider global variables without locations to be validDavid Blaikie2013-07-042-3/+38
| | | | | | | | | | | | | | | | | We were being a bit too aggresive here in classifying global variables with no global reference or constant value to be invalid - this would cause LLVM to not emit the DWARF description of the global variable if it had been optimized away, which isn't helpful for users who might benefit from the global variable's description even if there's no location information. This also fixes a crasher issue here that I was unable to reduce a test case for - involving a using decl (& subsequent DW_TAG_imported_declaration ) of such a global variable that, once optimized away, would crash when an attempt to emit the imported declaration was made. llvm-svn: 185675
* Add some more documentation on how to navigate from a LambdaExpr::CaptureJames Dennett2013-07-042-5/+10
| | | | | | to the associated FieldDecl. llvm-svn: 185674
* Use a OwningPtr instead of a manual delete.Rafael Espindola2013-07-041-5/+3
| | | | llvm-svn: 185673
* Minor documentation cleanupJames Dennett2013-07-041-10/+13
| | | | llvm-svn: 185672
* Pass tid through to ptrace operationsEd Maste2013-07-041-27/+35
| | | | | | This change is equivalent to the Linux threading support. llvm-svn: 185671
* Initialize object file info before output streamerNico Rieck2013-07-041-2/+2
| | | | | | | | | r179494 switched to using the object file info to retrieve the default text section for some MC streamers. It is possible that initializing an MC streamer can request sections before the object file info is initialized when the AutoInitSections flag is set on the streamer. llvm-svn: 185670
* MC: Add .section directive to COFFNico Rieck2013-07-044-2/+350
| | | | | | | | Supports GAS flags "abdnrswxy". No support for alignment or subsections. Fixes PR16366. llvm-svn: 185669
* Add test for r185584.Roman Divacky2013-07-041-0/+1
| | | | llvm-svn: 185668
* InstCombine: Reimplementation of visitUDivOperandDavid Majnemer2013-07-042-57/+139
| | | | | | | | | | | This transform was originally added in r185257 but later removed in r185415. The original transform would create instructions speculatively and then discard them if the speculation was proved incorrect. This has been replaced with a scheme that splits the transform into two parts: preflight and fold. While we preflight, we build up fold actions that inform the folding stage on how to act. llvm-svn: 185667
* Removed extension in [unordered_][multi]map which allowed one to emplace ↵Howard Hinnant2013-07-0412-174/+179
| | | | | | using just an argument for the key, as opposed to using piecewise_construct. However a bug report exposed that this created an unfortunate ambiguity. People who are currently using the extension will be notified the next time they compile, and will have to change to using piecewise_construct. There are no ABI issues with the removal of this extension. This fixes http://llvm.org/bugs/show_bug.cgi?id=16542 llvm-svn: 185666
* Simplify comparators of [unordered_][multi]map. This fixes ↵Howard Hinnant2013-07-044-84/+68
| | | | | | http://llvm.org/bugs/show_bug.cgi?id=16538 llvm-svn: 185665
* Add support for archives with no symbol table or string table.Rafael Espindola2013-07-043-1/+6
| | | | llvm-svn: 185664
* Fix leak. Should bring back the valgrind bot.Rafael Espindola2013-07-041-0/+1
| | | | llvm-svn: 185663
* [PowerPC] Implement writeNopDataUlrich Weigand2013-07-042-4/+17
| | | | | | | | | | | This implements a proper PPCAsmBackend::writeNopData routine that actually writes PowerPC nop instructions. This fixes the last remaining difference in object file output (text section) between the integrated assembler and GNU as that I've seen anywhere. llvm-svn: 185662
* Avoid crash if we fail to resolve process in attachEd Maste2013-07-041-3/+2
| | | | llvm-svn: 185661
* cpp11-migrate: Minor command-line fixes and improvementsEdwin Vane2013-07-046-11/+38
| | | | | | | | | | | * all transforms are in the same category * all transforms' options are in the same category * display the CommonOptionParser extra-help (which describe in more details the compilation database stuff) * add EXAMPLES section Author: Guillaume Papin <guillaume.papin@epitech.eu> llvm-svn: 185660
* Add 'not' in front of a command that is expected to fail.Rafael Espindola2013-07-041-1/+1
| | | | llvm-svn: 185659
* Add 'not' to command lines that are expected to fail.Rafael Espindola2013-07-041-1/+1
| | | | llvm-svn: 185658
* Don't pass llvm::errs() all over the place. Diagnostics always go to stderr.Rafael Espindola2013-07-047-98/+75
| | | | llvm-svn: 185657
* Changing long to int for consistency.Aaron Ballman2013-07-041-1/+1
| | | | llvm-svn: 185656
* Return 0 when processing --help. This matches gnu ld and gold.Rafael Espindola2013-07-043-13/+22
| | | | llvm-svn: 185655
* Add 'not' to commands that are expected to fail.Rafael Espindola2013-07-042-2/+2
| | | | llvm-svn: 185654
* Require a shell for this test.Rafael Espindola2013-07-041-0/+3
| | | | | | | Some versions of python will expand the glob used in the test, others wont, causing the test to fail when run with LIT_USE_INTERNAL_SHELL=1. llvm-svn: 185653
* Add 'not' to commands that are expected to fail.Rafael Espindola2013-07-04133-262/+262
| | | | | | | This is at least good documentation, but also opens the possibility of using pipefail. llvm-svn: 185652
* Remove an unneeded call to 'UpdateThumbVFPPredicate', spotted by Amaury.Joey Gouly2013-07-041-1/+0
| | | | llvm-svn: 185651
* Looks like {{.*}} doesn't match the empty string. Fix test.Rafael Espindola2013-07-041-1/+1
| | | | llvm-svn: 185650
* Relax pattern to accept a signext on ppc64.Rafael Espindola2013-07-041-1/+1
| | | | llvm-svn: 185649
* Replace 'grep foo | count 0' with 'not grep foo'.Rafael Espindola2013-07-0418-31/+31
| | | | | | This avoids depending on pipefail not being used. llvm-svn: 185648
OpenPOWER on IntegriCloud