summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Remove the last vestige of the world before data formatters :-)Enrico Granata2014-12-104-59/+64
| | | | | | | | Function pointers had a summary generated for them bypassing formatters, directly as part of the ValueObject subsystem This patch transitions that code into a hardcoded summary llvm-svn: 223906
* Skip TestExprPathSynthetic test on FreeBSD, Linux & Windows.Oleksiy Vyalov2014-12-101-1/+2
| | | | llvm-svn: 223905
* IR: Move call to dropAllReferences() to MDNode subclassesDuncan P. N. Exon Smith2014-12-102-2/+3
| | | | | | | Don't call `dropAllReferences()` from `MDNode::~MDNode()`, call it directly from `~MDNodeFwdDecl()` and `~GenericMDNode()`. llvm-svn: 223904
* DataLayout: Be more verbose when diagnosing problems in pointer specsDavid Majnemer2014-12-105-3/+22
| | | | llvm-svn: 223903
* DebugInfo: Correct location information for array accesses to elements of ↵David Blaikie2014-12-102-0/+13
| | | | | | variable array type. llvm-svn: 223902
* Add D request handler to GDBRemoteCommunicationServer in order to support ↵Oleksiy Vyalov2014-12-102-1/+73
| | | | | | detach from inferior. llvm-svn: 223901
* Made the ASTImporter resilient if it can't importSean Callanan2014-12-101-1/+6
| | | | | | | | | | | | | | SourceLocations. LLDB rarely has the same files mapped into the target AST context as the source AST context, so the ASTImporter shouldn't expect to see those files there. This started to become a problem when importing entities from modules -- these have proper source locations, in contrast to all the ASTs LLDB creates which have empty ones. llvm-svn: 223900
* I didn't intend to commit this with r223898David Majnemer2014-12-101-0/+0
| | | | llvm-svn: 223899
* DataLayout: Move asserts over to report_fatal_errorDavid Majnemer2014-12-107-7/+25
| | | | | | | | As indicated by the tests, it is possible to feed the AsmParser an invalid datalayout string. We should verify the result of parsing this string regardless of whether or not we have assertions enabled. llvm-svn: 223898
* DebugInfo: Fix another case of array access line informationDavid Blaikie2014-12-102-0/+13
| | | | llvm-svn: 223897
* MachineVerifier: Allow physreg use if just a subreg is defined.Matthias Braun2014-12-101-1/+12
| | | | | | | | We can't mark partially undefined registers, so we have to allow reading a register in the machine verifier if just parts of a register are defined. llvm-svn: 223896
* MachineVerifier: Allow LiveInterval segments to end at a partial write.Matthias Braun2014-12-101-2/+10
| | | | | | | | In the subregister liveness tracking case we do not create implicit reads on partial register writes anymore, still we need to produce a new SSA value for partial writes so the live segment has to end. llvm-svn: 223895
* VirtRegMap: Improve block live-in info if subregister liveness is available.Matthias Braun2014-12-101-9/+32
| | | | llvm-svn: 223894
* MCRegisterInfo: Add MCSubRegIndexIterator.Matthias Braun2014-12-101-0/+33
| | | | | | | This iterator iterates over subregister and their associated subregister indices at the same time. llvm-svn: 223893
* VirtRegMap: No implicit defs/uses for super registers with subreg liveness ↵Matthias Braun2014-12-102-5/+33
| | | | | | | | | | | | | tracking. Adding the implicit defs/uses to the superregisters is semantically questionable but was not dangerous before as the register allocator never assigned the same register to two overlapping LiveIntervals even when the actually live subregisters do not overlap. With subregister liveness tracking enabled this does actually happen and leads to subsequent bugs if we don't stop adding the superregister defs/uses. llvm-svn: 223892
* LiveRegMatrix: Respect subregister liveness when allocating registers.Matthias Braun2014-12-101-14/+49
| | | | llvm-svn: 223891
* LiveIntervalUnion: Allow specification of liverange when unifying/extracting.Matthias Braun2014-12-102-11/+17
| | | | | | This allows it to add subregister ranges into the union. llvm-svn: 223890
* Tablegen'erate lanemasks for register units.Matthias Braun2014-12-104-6/+125
| | | | | | Now we can relate lanemasks in a virtual register to register units. llvm-svn: 223889
* RegisterCoalescer: Preserve subregister liveranges.Matthias Braun2014-12-102-126/+565
| | | | llvm-svn: 223888
* LiveInterval: Add removeEmptySubRanges().Matthias Braun2014-12-102-0/+21
| | | | llvm-svn: 223887
* LiveIntervalAnalysis: Add subregister aware variants pruneValue().Matthias Braun2014-12-103-15/+32
| | | | llvm-svn: 223886
* LiveInterval: Introduce LiveQuery accessor for dead or live out values.Matthias Braun2014-12-101-0/+6
| | | | llvm-svn: 223885
* Add a flag to enable/disable subregister liveness.Matthias Braun2014-12-105-3/+27
| | | | llvm-svn: 223884
* LiveIntervalAnalysis: Adapt repairIntervalsInRange() to subregister liveness.Matthias Braun2014-12-102-77/+101
| | | | llvm-svn: 223883
* LiveRangeEdit: Adapt eliminateDeadDef() to subregister liveness.Matthias Braun2014-12-101-1/+9
| | | | llvm-svn: 223882
* LiveIntervalAnalysis: Adapt handleMove() to subregister ranges.Matthias Braun2014-12-101-16/+30
| | | | llvm-svn: 223881
* LiveIntervalAnalysis: Update SubRanges in shrinkToUses().Matthias Braun2014-12-102-80/+160
| | | | llvm-svn: 223880
* LiveIntervalAnalysis: Make computeDeadValues() private.Matthias Braun2014-12-101-11/+9
| | | | llvm-svn: 223879
* LiveIntervalAnalysis: Compute subregister ranges.Matthias Braun2014-12-102-100/+258
| | | | llvm-svn: 223878
* LiveInterval: Add support to track liveness of subregisters.Matthias Braun2014-12-106-32/+246
| | | | | | This code adds the required data structures. Algorithms to compute it follow. llvm-svn: 223877
* LiveInterval: Add a 'covers' operation to LiveRange.Matthias Braun2014-12-102-0/+27
| | | | llvm-svn: 223876
* LiveInterval: Add const version of LiveRange::advanceTo().Matthias Braun2014-12-101-0/+8
| | | | llvm-svn: 223875
* Add function that translates subregister lane masks to other subregs.Matthias Braun2014-12-104-1/+190
| | | | | | | This works like the composeSubRegisterIndices() function but transforms a subregister lane mask instead of a subregister index. llvm-svn: 223874
* Let tablegen compute maximum lanemask for regs/regclasses.Matthias Braun2014-12-104-5/+28
| | | | | | | | Let tablegen compute the combination of subregister lanemasks for all subregisters in a register/register class. This is preparation for further work subregister allocation llvm-svn: 223873
* DebugInfo: Correct the location of array accessesDavid Blaikie2014-12-102-0/+12
| | | | | | | Especially relevant to ASan when dealing with complex expressions containing multiple array accesses. See PR21737. llvm-svn: 223872
* Make sure that vec_perm is listed as a static function in altivec.h.Eric Christopher2014-12-101-18/+18
| | | | llvm-svn: 223871
* Tweak test case from r223842 to make it pass on Windows MSVCReid Kleckner2014-12-101-6/+3
| | | | | | We can't mangle __complex yet, and there is no C1 emission. llvm-svn: 223870
* AsmParser: Don't crash if a null byte is inside a quoted stringDavid Majnemer2014-12-103-52/+34
| | | | | | | We don't allow Value* to have names which contain null bytes. The AsmParser should reject .ll files that try to do this. llvm-svn: 223869
* Disable data formatter tests on Windows.Zachary Turner2014-12-102-0/+2
| | | | | | | | | | clang does not yet support MS-ABI record layout for externally-sourced ASTs. As a result, attempting to format something that requires data layout results in undefined behavior in clang, in this case an assert. http://llvm.org/pr21800 tracks fixing this on the clang side. llvm-svn: 223868
* Re-commit r223330: Rewrite InputGraph's GroupRui Ueyama2014-12-1020-353/+239
| | | | llvm-svn: 223867
* Extend some comments around GCModuleInfo, GCFunctionInfo, & GCStrategyPhilip Reames2014-12-102-5/+8
| | | | | | Nothing particularly interesting here, just documenting the way the code currently works before I start changing it... llvm-svn: 223866
* Fix Darwin linker. Patch from Jean-Daniel Dupas.Rui Ueyama2014-12-101-1/+1
| | | | llvm-svn: 223865
* cmake: Make SVNVersion.inc work on Windows if svn is called svn.bat.Nico Weber2014-12-101-0/+5
| | | | llvm-svn: 223864
* Simplify the handling of aliases in the gold plugin.Rafael Espindola2014-12-101-49/+33
| | | | | | | | | | | | | | | The complicated situation is when we have to keep an alias but drop a GV that is part of the aliasee. We used to clone the dropped GV and make the clone internal. This is wasteful as we know the original will be dropped. With this patch what is done instead is set the linkage of the original to internal and replace all uses (but the one in the alias) with a new declaration that takes the name of the old GV. This saves us from having to copy the body. llvm-svn: 223863
* [ARM] Combine base-updating/post-incrementing vector load/stores.Ahmed Bougacha2014-12-106-27/+421
| | | | | | | | | | | | | | | | | | We used to only combine intrinsics, and turn them into VLD1_UPD/VST1_UPD when the base pointer is incremented after the load/store. We can do the same thing for generic load/stores. Note that we can only combine the first load/store+adds pair in a sequence (as might be generated for a v16f32 load for instance), because other combines turn the base pointer addition chain (each computing the address of the next load, from the address of the last load) into independent additions (common base pointer + this load's offset). Differential Revision: http://reviews.llvm.org/D6585 llvm-svn: 223862
* cmake: Make SVNVersion.inc step depend on GetSVN.cmake.Nico Weber2014-12-101-2/+4
| | | | | | | | This way, the step generating SVNVersion.inc gets rerun every time someone changes GetSVN.cmake (which is the file that decides how the contents of SVNVersion.inc look). This makes hacking on GetSVN.cmake a bit easier. llvm-svn: 223861
* Updated the AST importer to support importingSean Callanan2014-12-101-0/+30
| | | | | | | | | LinkageSpecDecls. This is relevant when LLDB wants to import Decls from non-C++ modules, since many declarations are in extern "C" blocks. llvm-svn: 223860
* Remove the Module pointer from GCStrategy and GCMetadataPrinterPhilip Reames2014-12-097-27/+19
| | | | | | | | | | | | | | | | In the current implementation, GCStrategy is a part of the ownership structure for the gc metadata which describes a Module. It also contains a reference to the module in question. As a result, GCStrategy instances are essentially Module specific. I plan to transition away from this design. Instead, a GCStrategy will be owned by the LLVMContext. It will be a lightweight policy object which contains no information about the Modules or Functions involved, but can be easily reached given a Function. The first step in this transition is to remove the direct Module reference from GCStrategy. This also requires removing the single user of this reference, the GCMetadataPrinter hierarchy. In theory, this will allow the lifetime of the printers to be scoped to the LLVMContext as well, but in practice, I'm not actually changing that. (Yet?) An alternate design would have been to move the direct Module reference into the GCMetadataPrinter and change the keying of the owning maps to explicitly key off both GCStrategy and Module. I'm open to doing it that way instead, but didn't see much value in preserving the per Module association for GCMetadataPrinters. The next change in this sequence will be to start unwinding the intertwined ownership between GCStrategy, GCModuleInfo, and GCFunctionInfo. Differential Revision: http://reviews.llvm.org/D6566 llvm-svn: 223859
* IR: Fix memory corruption in MDNode new/deleteDuncan P. N. Exon Smith2014-12-091-4/+8
| | | | | | | | | | | | | | | There were two major problems with `MDNode` memory management. 1. `MDNode::operator new()` called a placement array constructor for `MDOperand`. What? Each operand needs to be placed individually. 2. `MDNode::operator delete()` failed to destruct the `MDOperand`s at all. Frankly it's hard to understand how this worked locally, how this survived an LTO bootstrap, or how it worked on most of the bots. llvm-svn: 223858
* Forgot to add test for r223856David Majnemer2014-12-091-0/+4
| | | | llvm-svn: 223857
OpenPOWER on IntegriCloud