summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Add the shifted cursor position to XML output, so it can be used by editor ↵Manuel Klimek2015-01-091-0/+4
| | | | | | integrations. llvm-svn: 225516
* Fix test from my previous commitOlivier Goffart2015-01-091-2/+2
| | | | | | (I should have re-run the test after running clang-format) llvm-svn: 225515
* Parse: Don't crash when namespace is in GNU statement exprDavid Majnemer2015-01-095-16/+20
| | | | | | | | | | | Parser::ParseNamespace can get a little confused when it found itself inside a compound statement inside of a non-static data member initializer. Try to determine that the statement expression's scope makes sense before trying to parse it's contents. llvm-svn: 225514
* Fix crash in typo correction while correcting enum within a struct in COlivier Goffart2015-01-092-2/+15
| | | | llvm-svn: 225513
* Adjust test for the new 'distinct' metadata nodesTobias Grosser2015-01-092-5/+5
| | | | | | | 'distinct' was introduced in 225474. We now adjust the test cases to match for the additional 'distinct' marker. llvm-svn: 225512
* Sema: RecordDecl shouldn't have a FunctionDecl as a DeclDavid Majnemer2015-01-092-2/+13
| | | | | | | RecordDecls should have things like CXXMethodDecls or FriendDecls as a decl but not things like FunctionDecls. llvm-svn: 225511
* ARM: add support for R_ARM_ABS16Saleem Abdulrasool2015-01-092-0/+21
| | | | | | Add support for R_ARM_ABS16 relocation mapping. Addresses PR22156. llvm-svn: 225510
* test: add additional test for SVN r225507Saleem Abdulrasool2015-01-091-0/+2
| | | | | | | Add an additional test case to ensure that we generate the relocation even if the thumb target is used. llvm-svn: 225509
* Sema: Don't crash when specializing a global scope function in a classDavid Majnemer2015-01-092-1/+7
| | | | | | | | We assumed that class-scope specializations would result in a CXXMethodDecl for that class. However, globally qualified functions will result in normal FunctionDecls. llvm-svn: 225508
* ARM: add support for R_ARM_ABS8 relocationsSaleem Abdulrasool2015-01-092-0/+18
| | | | | | Add support for R_ARM_ABS8 relocation. Addresses PR22126. llvm-svn: 225507
* Sema: Remove some dead code from CreateNewFunctionDeclDavid Majnemer2015-01-091-3/+0
| | | | | | | The same code is already in Sema::ActOnFunctionDeclarator, the only caller of CreateNewFunctionDecl. llvm-svn: 225506
* Parse: Don't crash when trailing return type is missingDavid Majnemer2015-01-092-5/+11
| | | | | | | | | Sema::CheckParmsForFunctionDef can't cope with a null TypeSourceInfo. Don't let the AST contain the malformed lambda. This fixes PR22122. llvm-svn: 225505
* Driver: begin threading frontend support for SymbolRewriterSaleem Abdulrasool2015-01-096-0/+60
| | | | | | | | | | Allow blessed access to the symbol rewriter from the driver. Although the symbol rewriter could be invoked through tools like opt and llc, it would not accessible from the frontend. This allows us to read the rewrite map files in the frontend rather than the backend and enable symbol rewriting for actually performing the symbol interpositioning. llvm-svn: 225504
* RegisterCoalescer: Fix removeCopyByCommutingDef with subreg livenessMatthias Braun2015-01-092-1/+54
| | | | | | | | | The code that eliminated additional coalescable copies in removeCopyByCommutingDef() used MergeValueNumberInto() which internally may merge A into B or B into A. In this case A and B had different Def points, so we have to reset ValNo.Def to the intended one after merging. llvm-svn: 225503
* RegisterCoalescer: Some cleanup in removeCopyByCommutingDef(), NFCMatthias Braun2015-01-091-15/+19
| | | | llvm-svn: 225502
* RegisterCoalescer: No need to set kill flags, they are recompute later anywayMatthias Braun2015-01-091-2/+0
| | | | llvm-svn: 225501
* RegisterCoalescer: Turn some impossible conditions into assertsMatthias Braun2015-01-091-15/+9
| | | | llvm-svn: 225500
* Bitcode: Share logic for last instruction, NFCDuncan P. N. Exon Smith2015-01-091-14/+10
| | | | | | Share logic for getting the last instruction emitted. llvm-svn: 225499
* Bitcode: Move the DEBUG_LOC record to DEBUG_LOC_OLDDuncan P. N. Exon Smith2015-01-094-4/+4
| | | | | | Prepare to simplify the `DebugLoc` record. llvm-svn: 225498
* [PowerPC] Add a flag for experimenting with subreg liveness trackingHal Finkel2015-01-092-0/+10
| | | | | | | This cannot yet be enabled by default, it causes ~50 miscompiles in the test suite. llvm-svn: 225497
* [InlineTest] getRerunArgs returns an empty string if the test was skipped.Siva Chandra2015-01-091-3/+5
| | | | | | | | | | | | | | | | | | | | | | Summary: The main issue that this patch is trying to address is that the current implementation of getRerunArgs of InlineTest relies on the attribute 'using_dsym' which could be absent if the test was skipped altogether. [That is, if both dsym and dwarf tests were skipped.] While at it, the use of deprecated Python module 'new' is eliminated. Test Plan: [Linux] dotest.py -p TestExprPathSynthetic Reviewers: vharron, clayborg Reviewed By: clayborg Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D6888 llvm-svn: 225496
* InstrProf: Don't emit counter increments in dead codeJustin Bogner2015-01-092-0/+17
| | | | | | | | | We were previously emitting counter increments even if we didn't have an insertion point, which would result in a CallInst with no parent. This leads to a crash, as in pr22166, if we try to do GlobalDCE. llvm-svn: 225495
* Sema: Dependent array designators cannot be checkedDavid Majnemer2015-01-092-2/+9
| | | | | | | | | | | We forgot to mark designated initializer expression that contain type dependent array designators as type dependent. This would lead to crashes when we try to determine which array element we were trying to initialize. This fixes PR22056. llvm-svn: 225494
* [PowerPC] Fold [sz]ext with fp_to_int lowering where possibleHal Finkel2015-01-093-4/+130
| | | | | | | On modern cores with lfiw[az]x, we can fold a sign or zero extension from i32 to i64 into the load necessary for an i64 -> fp conversion. llvm-svn: 225493
* [DAGCombine] Remainder of fix to r225380 (More FMA folding opportunities)Hal Finkel2015-01-091-10/+24
| | | | | | | | | | As pointed out by Aditya (and Owen), when we elide an FP extend to form an FMA, we need to extend the incoming operands so that the resulting node will really be legal. This is currently enabled only for PowerPC, and it happens to work there regardless, but this should fix the functionality for everyone else should anyone else wish to use it. llvm-svn: 225492
* [x86] Add a flag to control the vector shuffle legality predicates thatChandler Carruth2015-01-091-0/+23
| | | | | | | | | | complements the new vector shuffle lowering code path. This flag, naturally, is *off* because we've not tested or evaluated the results of this at all. However, the flag will make it much easier to evaluate whether we can be this aggressive and whether there are missing vector shuffle lowering optimizations. llvm-svn: 225491
* PR22117: Fix a case where we would get confused about which function parameterRichard Smith2015-01-093-8/+39
| | | | | | | | | | we're instantiating, if there's a ParmVarDecl within a FunctionDecl context that is not a parameter of that function. Add some asserts to catch this kind of issue more generally, and fix another bug exposed by those asserts where we were missing a local instantiation scope around substitution of explicitly-specified template arguments. llvm-svn: 225490
* Don't invent a '$auto-x-y' name for auto types in generic lambdas. This is noRichard Smith2015-01-092-12/+3
| | | | | | | | | better than the 'template-parameter-x-y' name that we'd get in AST printing, and is worse in several ways (it's harder to distinguish it from a user-supplied name, it's wrong after substituting some number of outer levels, it wastes time and space constructing an IdentifierInfo, ...). llvm-svn: 225489
* Use APSInt::isSameValue instead of operator== in a place where two APSInt'sRichard Trieu2015-01-092-1/+16
| | | | | | may have different sizes. Fixes PR22017 llvm-svn: 225488
* Cleaup ValueHandle to no longer keep a PointerIntPair for the Value*.Chandler Carruth2015-01-092-40/+33
| | | | | | | | This was used previously for metadata but is no longer needed there. Not doing this simplifies ValueHandle and will make it easier to fix things like AssertingVH's DenseMapInfo. llvm-svn: 225487
* Dynamic values have been around (and stable and reliable) for long enough ↵Enrico Granata2015-01-092-1/+11
| | | | | | | | | | | | that we can turn them on by default Change the default of prefer-dynamic-value to eDynamicDontRunTarget (i.e. enable dynamic values, but do not run code to do so) Of course, disable this for the test suite, since testing no-dynamic-values is actually valuable Fixes rdar://17363061 llvm-svn: 225486
* Partial fix to r225380 (More FMA folding opportunities)Hal Finkel2015-01-091-96/+95
| | | | | | | | | | | | As pointed out by Aditya (and Owen), there are two things wrong with this code. First, it adds patterns which elide FP extends when forming FMAs, and that might not be profitable on all targets (it belongs behind the pre-existing aggressive-FMA-formation flag). This is fixed by this change. Second, the resulting nodes might have operands of different types (the extensions need to be re-added). That will be fixed in the follow-up commit. llvm-svn: 225485
* [asan] Adding a regression test for ↵Kuba Brecka2015-01-091-0/+38
| | | | | | https://code.google.com/p/address-sanitizer/issues/detail?id=368 llvm-svn: 225484
* [REFACTOR] Push logic from MemDepPrinter into getNonLocalPointerDependencyPhilip Reames2015-01-093-38/+30
| | | | | | | | Previously, MemDepPrinter handled volatile and unordered accesses without involving MemoryDependencyAnalysis. By making a slight tweak to the documented interface - which is respected by both callers - we can move this responsibility to MDA for the benefit of any future callers. This is basically just cleanup. In the future, we may decide to extend MDA's non local dependency analysis to return useful results for ordered or volatile loads. I believe (but have not really checked in detail) that local dependency analyis does get useful results for ordered, but not volatile, loads. llvm-svn: 225483
* ReleaseNotes.rst: these are for 3.6Hans Wennborg2015-01-091-1/+1
| | | | llvm-svn: 225482
* [Refactor] Have getNonLocalPointerDependency take the query instructionPhilip Reames2015-01-094-16/+56
| | | | | | | | | | Previously, MemoryDependenceAnalysis::getNonLocalPointerDependency was taking a list of properties about the instruction being queried. Since I'm about to need one more property to be passed down through the infrastructure - I need to know a query instruction is non-volatile in an inner helper - fix the interface once and for all. I also added some assertions and behaviour clarifications around volatile and ordered field accesses. At the moment, this is mostly to document expected behaviour. The only non-standard instructions which can currently reach this are atomic, but unordered, loads and stores. Neither ordered or volatile accesses can reach here. The call in GVN is protected by an isSimple check when it first considers the load. The calls in MemDepPrinter are protected by isUnordered checks. Both utilities also check isVolatile for loads and stores. llvm-svn: 225481
* Add experimental support for unsigned expressionsTobias Grosser2015-01-093-2/+57
| | | | | | | | This support is still incomplete and consequently hidden behind a switch that needs to be enabled. One problem is ATM that we incorrectly interpret very large unsigned values as negative values even if used in an unsigned comparision. llvm-svn: 225480
* LangRef: Add usage points for distinct MDNodesDuncan P. N. Exon Smith2015-01-081-0/+4
| | | | | | Omission pointed out by Sean Silva! llvm-svn: 225479
* [asan] make a test consume 2x less RAM (we observe flaky bot failures that ↵Kostya Serebryany2015-01-081-10/+10
| | | | | | seem like OOMs) llvm-svn: 225478
* IR: Drop TODO now that PR22111 is finishedDuncan P. N. Exon Smith2015-01-081-2/+0
| | | | llvm-svn: 225477
* Utils: Keep distinct MDNodes distinct in MapMetadata()Duncan P. N. Exon Smith2015-01-083-0/+64
| | | | | | | | | | | | | Create new copies of distinct `MDNode`s instead of following the uniquing `MDNode` logic. Just like self-references (or other cycles), `MapMetadata()` creates a new node. In practice most calls use `RF_NoModuleLevelChanges`, in which case nothing is duplicated anyway. Part of PR22111. llvm-svn: 225476
* IR: Add 'distinct' MDNodes to bitcode and assembly (clang)Duncan P. N. Exon Smith2015-01-085-26/+26
| | | | | | | | | Update testcases for LLVM change in r225474 to make `MDNode`s explicitly distinct (when they aren't uniqued). Part of PR22111. llvm-svn: 225475
* IR: Add 'distinct' MDNodes to bitcode and assemblyDuncan P. N. Exon Smith2015-01-0820-54/+110
| | | | | | | | | | | | | | | | | | Propagate whether `MDNode`s are 'distinct' through the other types of IR (assembly and bitcode). This adds the `distinct` keyword to assembly. Currently, no one actually calls `MDNode::getDistinct()`, so these nodes only get created for: - self-references, which are never uniqued, and - nodes whose operands are replaced that hit a uniquing collision. The concept of distinct nodes is still not quite first-class, since distinct-ness doesn't yet survive across `MapMetadata()`. Part of PR22111. llvm-svn: 225474
* remove function names from comments; NFCSanjay Patel2015-01-081-11/+10
| | | | llvm-svn: 225473
* Fix memory leaks in GetListOfModules() users.Alexey Samsonov2015-01-084-18/+33
| | | | llvm-svn: 225472
* [PowerPC] Mark all instructions as non-cheap for MachineLICMHal Finkel2015-01-082-0/+64
| | | | | | | | | | | | MachineLICM uses a callback named hasLowDefLatency to determine if an instruction def operand has a 'low' latency. If all relevant operands have a 'low' latency, the instruction is considered too cheap to hoist out of loops even in low-register-pressure situations. On PowerPC cores, both the embedded cores and the others, there is no reason to believe that this is a good choice: all instructions have a cost inside a loop, and hoisting them when not limited by register pressure is a reasonable default. llvm-svn: 225471
* [MachineLICM] A command-line option to hoist even cheap instructionsHal Finkel2015-01-081-1/+6
| | | | | | | | Add a command-line option to enable hoisting even cheap instructions (in low-register-pressure situations). This is turned off by default, but has proved useful for testing purposes. llvm-svn: 225470
* [Sanitizer] Remove the hardcoded limit of address ranges in LoadedModule.Alexey Samsonov2015-01-084-30/+38
| | | | | | This should fix https://code.google.com/p/address-sanitizer/issues/detail?id=368. llvm-svn: 225469
* CodeGen: Use handy new-fangled post-increment, NFCDuncan P. N. Exon Smith2015-01-081-1/+1
| | | | | | | Drive-by cleanup; I noticed this when reviewing the patch that became r225466. llvm-svn: 225468
* [ARM] Fix a bug in constant island pass that was triggering an assertion.Akira Hatanaka2015-01-082-1/+43
| | | | | | | | | | | | | | | | | | | The assert was being triggered when the distance between a constant pool entry and its user exceeded the maximally allowed distance after thumb2 branch shortening. A padding was inserted after a thumb2 branch instruction was shrunk, which caused the user to be out of range. This is wrong as the padding should have been inserted by the layout algorithm so that the distance between two instructions doesn't grow later during thumb2 instruction optimization. This commit fixes the code in ARMConstantIslands::createNewWater to call computeBlockSize and set BasicBlock::Unalign when a branch instruction is inserted to create new water after a basic block. A non-zero Unalign causes the worst-case padding to be inserted when adjustBBOffsetsAfter is called to recompute the basic block offsets. rdar://problem/19130476 llvm-svn: 225467
OpenPOWER on IntegriCloud