summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Fix and xfail TestRegisterVariables after rL265498Tamas Berghammer2016-04-062-8/+3
| | | | llvm-svn: 265527
* Revert "[modules] Continue factoring encoding of AST records out of ASTWriter."Dmitry Polukhin2016-04-066-992/+1100
| | | | | | This reverts commit r265518. llvm-svn: 265526
* Fix a cornercase in breakpoint reportingPavel Labath2016-04-061-0/+17
| | | | | | | | | | | | | | | | | | | | Summary: This resolves a similar problem as D16720 (which handled the case when we single-step onto a breakpoint), but this one deals with involutary stops: when we stop a thread (e.g. because another thread has hit a breakpont and we are doing a full stop), we can end up stopping it right before it executes a breakpoint instruction. In this case, the stop reason will be empty, but we will still step over the breakpoint when do the next resume, thereby missing a breakpoint hit. I have observed this happening in TestConcurrentEvents, but I have no idea how to reproduce this behavior more reliably. Reviewers: clayborg Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D18692 llvm-svn: 265525
* Fixup r265398Pavel Labath2016-04-061-0/+1
| | | | llvm-svn: 265524
* [ELF] - Teach linkerscript error handler to show full script line and column ↵George Rimar2016-04-062-0/+43
| | | | | | | | | | | | | | | marker on error. When error, this adds the text line of script to the output and a marks exact incorrect token under it: line 1: <error text here> UNKNOWN_TAG { ^ Differential revision: http://reviews.llvm.org/D18699 llvm-svn: 265523
* [ELF] - Do not handle ELF and program header as dummy sections.George Rimar2016-04-061-27/+28
| | | | | | | | | | ELF and program header are not part of OutputSections list anymore. That helps to avoid having and working with functions like dummySectionsNum(). Still keeping them as sections helps to simplify the code. Differential revision: http://reviews.llvm.org/D18743 llvm-svn: 265522
* [SLPVectorizer] Vectorizing the libm sqrt to llvm's sqrt intrinsic requires nnanDavid Majnemer2016-04-063-4/+30
| | | | | | | | | | | | | | To quote the langref "Unlike sqrt in libm, however, llvm.sqrt has undefined behavior for negative numbers other than -0.0 (which allows for better optimization, because there is no need to worry about errno being set). llvm.sqrt(-0.0) is defined to return -0.0 like IEEE sqrt." This means that it's unsafe to replace sqrt with llvm.sqrt unless the call is annotated with nnan. Thanks to Hal Finkel for pointing this out! llvm-svn: 265521
* IR: Move MDStrings to a BumpPtrAllocatorDuncan P. N. Exon Smith2016-04-061-1/+1
| | | | | | | We never delete any MDString until the context is destroyed. Might as well throw them onto a BumpPtrAllocator. llvm-svn: 265520
* IRMover: Steal arguments when moving functions, NFCDuncan P. N. Exon Smith2016-04-065-19/+144
| | | | | | | | | | | | | | | | | | Instead of copying arguments from the source function to the destination, steal them. This has a few advantages. - The ValueMap doesn't need to be seeded with (or cleared of) Arguments. - Often the destination function won't have created any arguments yet, so this avoids malloc traffic. - Argument names don't need to be copied. Because argument lists are lazy, this required a new Function::stealArgumentListFrom helper. llvm-svn: 265519
* [modules] Continue factoring encoding of AST records out of ASTWriter.Richard Smith2016-04-066-1100/+992
| | | | llvm-svn: 265518
* Revert "[IRVerifier] Don't crash on invalid DIFile inside DISubprogram."Davide Italiano2016-04-062-12/+0
| | | | | | | This reverts commit r265515 as lots of tests need to be fixed before this actually can go in. llvm-svn: 265517
* Add parentheses to silence warning.Richard Trieu2016-04-061-1/+2
| | | | llvm-svn: 265516
* [IRVerifier] Don't crash on invalid DIFile inside DISubprogram.Davide Italiano2016-04-062-0/+12
| | | | llvm-svn: 265515
* [IRVerifier] Avoid crashing on an invalid compile unit.Davide Italiano2016-04-062-7/+16
| | | | llvm-svn: 265514
* AArch64: Fix compile errorMatthias Braun2016-04-061-1/+1
| | | | | | | Fixed to adapt a use of enterBasicBlock() in my last commit (because I had follow on patches in my repository that change the code). llvm-svn: 265513
* Do not allocate MipsReginfo using BumpPtrAllocator.Rui Ueyama2016-04-062-3/+3
| | | | | | So that MipsReginfo's destructor will be called. llvm-svn: 265512
* RegisterScavenger: Take a reference as enterBasicBlock() argument.Matthias Braun2016-04-0610-19/+16
| | | | | | | Make it obvious that the argument cannot be nullptr. Remove an unnecessary nullptr check in initRegState. llvm-svn: 265511
* LivePhysRegs: removeReg() must remove aliased registersMatthias Braun2016-04-061-6/+2
| | | | | | | | | | | We must remove all aliased registers which may be more than the all sub and super registers combined. Bug found while reading the code. The bug does not affect any existing target as the only use of register aliases I could found were control registers on ARM and Hexagon which are all reserved. llvm-svn: 265510
* LivePhysRegs: Remove redundant checkMatthias Braun2016-04-061-1/+1
| | | | llvm-svn: 265509
* ValueMapper: Fix delayed blockaddress handling after r265273Duncan P. N. Exon Smith2016-04-062-3/+25
| | | | | | | | | r265273 added Mapper::mapBlockAddress, which delays mapping a blockaddress value until the function has a body. The condition was backwards, and should be checking Function::empty instead of GlobalValue::isDeclaration. llvm-svn: 265508
* AsmParser: Don't crash on unresolved !tbaaDuncan P. N. Exon Smith2016-04-063-5/+17
| | | | | | | | Instead of crashing, give a nice error. As a drive-by, fix the location associated with the errors for unresolved metadata (the location was off by one token). llvm-svn: 265507
* [ppc64] Enable sibling call optimization on ppc64 ELFv1/ELFv2 abiChuang-Yu Cheng2016-04-065-8/+467
| | | | | | | | | | | | | | | | | This patch enable sibling call optimization on ppc64 ELFv1/ELFv2 abi, and add a couple of test cases. This patch also passed llvm/clang bootstrap test, and spec2006 build/run/result validation. Original issue: https://llvm.org/bugs/show_bug.cgi?id=25617 Great thanks to Tom's (tjablin) help, he contributed a lot to this patch. Thanks Hal and Kit's invaluable opinions! Reviewers: hfinkel kbarton http://reviews.llvm.org/D16315 llvm-svn: 265506
* [Power9] Implement add-pc, multiply-add, modulo, extend-sign-shift, random ↵Chuang-Yu Cheng2016-04-0610-0/+380
| | | | | | | | | | | | | | | | | | | | | number, set bool, and dfp test significance This patch implement the following instructions: - addpcis subpcis - maddhd maddhdu maddld - modsw moduw modsd modud - darn - extswsli extswsli. - setb - dtstsfi dtstsfiq Total 15 instructions Reviewers: nemanjai hfinkel tjablin amehsan kbarton http://reviews.llvm.org/D17885 llvm-svn: 265505
* [Power9] Implement copy-paste, msgsync, slb, and stop instructionsChuang-Yu Cheng2016-04-069-0/+174
| | | | | | | | | | | | | This patch implements the following BookII and Book III instructions: - copy copy_first cp_abort paste paste. paste_last - msgsync - slbieg slbsync - stop Total 10 instructions Reviewers: nemanjai hfinkel tjablin amehsan kbarton llvm-svn: 265504
* [RS4GC] Add a commentSanjoy Das2016-04-061-0/+4
| | | | llvm-svn: 265503
* Lower @llvm.experimental.deoptimize as a noreturn callSanjoy Das2016-04-064-13/+35
| | | | | | | | | | | | | | | | | | | | | | | While preserving the return value for @llvm.experimental.deoptimize at the IR level is useful during mid-level optimization, doing so at the machine instruction level requires generating some extra code and a return that is non-ideal. This change has LLVM lower ``` %val = call @llvm.experimental.deoptimize ret %val ``` to effectively ``` call @__llvm_deoptimize() unreachable ``` instead. llvm-svn: 265502
* Make helper function static. NFC.Rafael Espindola2016-04-061-1/+1
| | | | llvm-svn: 265501
* AMDGPU: Document address space mappingTom Stellard2016-04-061-0/+23
| | | | | | | | | | | | | | | | | Summary: Address space mapping is described in lib/Target/AMDGPU/AMDGPU.h in Doxygen comments. This patch adds the description to user guide for AMDGPU back-end. Patch By: Vedran Miletić Reviewers: tstellarAMD, arsenm Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D17046 llvm-svn: 265500
* AArch64CodeGen: Make AArch64RegisterBankInfo.cpp optional along ↵NAKAMURA Takumi2016-04-061-1/+13
| | | | | | LLVM_BUILD_GLOBAL_ISEL. llvm-svn: 265499
* make TestRegisterVariables slightly more resilientTodd Fiala2016-04-062-16/+123
| | | | | | | | | | | | | | | | | | | This test sets the compiler optimization level to -O1 and makes some assumptions about how local frame vars will be stored (i.e. in registers). These assumptions are not always true. I did a first-pass set of improvements that: (1) no longer assumes that every one of the target locations has every variable in a register. Sometimes the compiler is even smarter and skips the register entirely. (2) simply expects one of the 5 or so variables it checks to be in a register. This test probably passes on a whole lot more systems than it used to now. This is certainly true on OS X. llvm-svn: 265498
* Fix a memory leak found by check-lld asan tests.Ivan Krasin2016-04-062-2/+3
| | | | | | | | | | | | | | | | | | Summary: This bug was introduced by http://reviews.llvm.org/rL265059, where InputSectionBase got Thunks field, which can do memory allocations. Since InputSectionBase destructors were never called (I count it as another bug), that caused a memory leak when 2 or more thunks are added to a section. The fix to is properly call InputSectionBase destructors from ~ObjectFile. Reviewers: atanasyan, ruiu, rafael Subscribers: rafael, krasin, pcc Differential Revision: http://reviews.llvm.org/D18809 llvm-svn: 265497
* The FixItList typedef should have been inside "class ClangDiagnostic".Jim Ingham2016-04-061-1/+2
| | | | llvm-svn: 265496
* If the fixed expression doesn't parse, don't tell the user about it.Jim Ingham2016-04-061-0/+5
| | | | llvm-svn: 265495
* Don't write "using $_lldb_local_vars" statements for variables withJim Ingham2016-04-061-1/+1
| | | | | | | no name. These were showing up with a recent clang, I haven't tracked down why yet, but adding them is clearly wrong. llvm-svn: 265494
* [SLPVectorizer] Vectorize libcalls of sqrtDavid Majnemer2016-04-063-25/+28
| | | | | | | We didn't realize that we could transform the libcall into a vectorized intrinsic. llvm-svn: 265493
* [RegisterBankInfo] Include RegisterBank.h.Quentin Colombet2016-04-051-1/+2
| | | | | | | We actually need the definition of a RegisterBank to be able to inline the implementation of the subscript operator. llvm-svn: 265492
* [RegisterBankInfo] Add missing include for assert.Quentin Colombet2016-04-051-0/+1
| | | | | | This should appease the linux bot. llvm-svn: 265491
* [DebugInfo] Fix tests so that each subprogram belongs to a CU.Davide Italiano2016-04-0514-11/+89
| | | | llvm-svn: 265490
* [AArch64] Initial implementation of the targeting of the register bank ↵Quentin Colombet2016-04-053-0/+115
| | | | | | information. llvm-svn: 265489
* Update testing cases after backend changes.Manman Ren2016-04-052-2/+2
| | | | llvm-svn: 265488
* [RegisterBankInfo] Simplify the API for build a register bank.Quentin Colombet2016-04-052-11/+10
| | | | | | | | | As part of the TRI argument of addRegBankCoverage we already have access to the TargetRegisterClass through the ID of that register class. Therefore, there is no point in needing a TargetRegisterClass instance, the ID is enough to get to it. llvm-svn: 265487
* [RS4GC] NFC cleanup of the DeferredReplacement classSanjoy Das2016-04-051-5/+18
| | | | | | Instead of constructors use clearly named factory methods. llvm-svn: 265486
* [RS4GC] Better codegen for deoptimize callsSanjoy Das2016-04-052-18/+66
| | | | | | | | | Don't emit a gc.result for a statepoint lowered from @llvm.experimental.deoptimize since the call into __llvm_deoptimize is effectively noreturn. Instead follow the corresponding gc.statepoint with an "unreachable". llvm-svn: 265485
* [Target] Remove a deprecated comment.Quentin Colombet2016-04-051-2/+1
| | | | llvm-svn: 265484
* [Target] Add an accessor to the register bank information.Quentin Colombet2016-04-051-0/+5
| | | | llvm-svn: 265483
* Swift Calling Convention: swiftcc for ARM.Manman Ren2016-04-055-0/+205
| | | | | | Differential Revision: http://reviews.llvm.org/D18769 llvm-svn: 265482
* Faster stack-protector for Android/AArch64.Evgeniy Stepanov2016-04-058-33/+90
| | | | | | | Bionic has a defined thread-local location for the stack protector cookie. Emit a direct load instead of going through __stack_chk_guard. llvm-svn: 265481
* Swift Calling Convention: add swiftcc.Manman Ren2016-04-059-0/+232
| | | | | | Differential Revision: http://reviews.llvm.org/D17863 llvm-svn: 265480
* [RegisterBank] Implement the verify method to check for the obvious mistakes.Quentin Colombet2016-04-051-4/+27
| | | | llvm-svn: 265479
* Delete broken code.Rafael Espindola2016-04-054-10/+27
| | | | | | | | | A synthetic symbol can be global or local, and with the current infrastructure we don't need any special code for it. Fixes PR27228. llvm-svn: 265478
OpenPOWER on IntegriCloud