summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* [PBQP Regalloc] Pre-spill vregs that have no legal physregs.Lang Hames2015-02-031-26/+57
| | | | | | | | | | | | | The PBQP::RegAlloc::MatrixMetadata class assumes that matrices have at least two rows/columns (for the spill option plus at least one physreg). This patch ensures that that invariant is met by pre-spilling vregs that have no physreg options so that no node (and no corresponding edges) need be added to the PBQP graph. This fixes a bug in an out-of-tree target that was identified by Jonas Paulsson. Thanks for tracking this down Jonas! llvm-svn: 227942
* Resurrect initializers for NumLoads and NumStores in ↵NAKAMURA Takumi2015-02-031-2/+3
| | | | | | | LoopVectorizationLegality to suppress undefined behavior. FIXME: Shall they be managed in LAA? llvm-svn: 227940
* Propagate a better error message to the C api.Rafael Espindola2015-02-031-3/+5
| | | | llvm-svn: 227934
* Use a non-fatal diag handler in the C API. FIxes PR22368.Rafael Espindola2015-02-031-2/+11
| | | | llvm-svn: 227903
* InstrProf: Simplify RawCoverageMappingReader's API slightlyJustin Bogner2015-02-031-7/+9
| | | | | | | | This is still kind of a weird API, but dropping the (partial) update of the passed in CoverageMappingRecord makes it a little easier to understand and use. llvm-svn: 227900
* InstrProf: Simplify some logic by using ArrayRef::slice (NFC)Justin Bogner2015-02-031-1/+1
| | | | llvm-svn: 227898
* Migrate to using the subtarget on the machine function and updateEric Christopher2015-02-021-7/+5
| | | | | | all uses. llvm-svn: 227891
* Use the function template getSubtarget off of the machine function,Eric Christopher2015-02-021-13/+10
| | | | | | and use it in all locations. llvm-svn: 227890
* Use the cached subtarget on the MachineFunction.Eric Christopher2015-02-021-1/+1
| | | | llvm-svn: 227885
* Remove dead header.Eric Christopher2015-02-021-149/+0
| | | | llvm-svn: 227884
* Remove dead code in the HexagonMCInst classes. This also fixesEric Christopher2015-02-021-4/+0
| | | | | | a layering violation in the port and removes calls to getSubtargetImpl. llvm-svn: 227883
* 80-col fixup.Eric Christopher2015-02-021-0/+4
| | | | llvm-svn: 227882
* Remove dead code in the HexagonMCInst classes. This also fixesEric Christopher2015-02-022-15/+0
| | | | | | a layering violation in the port and removes calls to getSubtargetImpl. llvm-svn: 227880
* 80-col fixup.Eric Christopher2015-02-021-1/+3
| | | | llvm-svn: 227879
* Remove unused class variables and update all callers/uses fromEric Christopher2015-02-023-12/+6
| | | | | | | the HexagonSplitTFRCondSet pass. Use the subtarget off the machine function at the same time. llvm-svn: 227878
* Migrate the HexagonSplitConst32AndConst64 pass from TargetMachineEric Christopher2015-02-023-17/+10
| | | | | | | based getSubtarget to the one cached on the MachineFunction. Remove unused class variables and update all callers/uses. llvm-svn: 227874
* Remove #if'd code and update comment.Eric Christopher2015-02-021-5/+2
| | | | llvm-svn: 227873
* Move HexagonMachineScheduler to use the subtarget off of theEric Christopher2015-02-022-14/+9
| | | | | | | MachineFunction and update all uses accordingly including VLIWResourceModel. llvm-svn: 227872
* Cache and use the subtarget that owns the target lowering.Eric Christopher2015-02-023-25/+20
| | | | llvm-svn: 227871
* bpf: Use the getSubtarget call off of the MachineFunction rather than the ↵Alexei Starovoitov2015-02-021-2/+1
| | | | | | | | | | | | | | | | | | | | TargetMachine Summary: Hi Eric, this patch cleans up the layering violation that you're fixing across backends. Anything else I need to fix on bpf backend side? Thanks Reviewers: echristo Reviewed By: echristo Differential Revision: http://reviews.llvm.org/D7355 llvm-svn: 227865
* Resurrect the assertion removed by r227717Jingyue Wu2015-02-023-11/+10
| | | | | | | | | | | | | | Summary: MSVC can compile "LoopID->getOperand(0) == LoopID" when LoopID is MDNode*. Test Plan: no regression Reviewers: mkuper Subscribers: jholewinski, llvm-commits Differential Revision: http://reviews.llvm.org/D7327 llvm-svn: 227853
* Fix the -Werror build, NFCDuncan P. N. Exon Smith2015-02-021-0/+2
| | | | llvm-svn: 227849
* IR: Allow GenericDebugNode construction from MDStringDuncan P. N. Exon Smith2015-02-021-8/+12
| | | | | | | | | | | | | | | | Allow `GenericDebugNode` construction directly from `MDString`, rather than requiring `StringRef`s. I've refactored the `StringRef` constructors to use these. There's no real functionality change here, except for exposing the lower-level API. The purpose of this is to simplify construction of string operands when reading bitcode. It's unnecessarily indirect to parse an `MDString` ID, lookup the `MDString` in the bitcode reader list, get the `StringRef` out of that, and then have `GenericDebugNode::getImpl()` use `MDString::get()` to acquire the original `MDString`. Instead, this allows the bitcode reader to directly pass in the `MDString`. llvm-svn: 227848
* IR: Separate helpers for string operands, NFCDuncan P. N. Exon Smith2015-02-021-2/+8
| | | | llvm-svn: 227846
* [Orc] Make OrcMCJITReplacement::addObject calls transfer buffer ownership to theLang Hames2015-02-021-2/+7
| | | | | | | | | | | | | | | ObjectLinkingLayer. There are a two of overloads for addObject, one of which transfers ownership of the underlying buffer to OrcMCJITReplacement. This commit makes the ownership transfering version pass ownership down to the ObjectLinkingLayer in order to prevent the issue described in r227778. I think this commit will fix the sanitizer bot failures that necessitated the removal of the load-object-a.ll regression test in r227785, so I'm reinstating that test. llvm-svn: 227845
* Move simple case earlier and use a continue.Rafael Espindola2015-02-021-24/+25
| | | | llvm-svn: 227841
* Migrate HexagonISelDAGToDAG to setting a subtarget pointer duringEric Christopher2015-02-023-44/+43
| | | | | | runOnMachineFunction. Update all uses of the Subtarget accordingly. llvm-svn: 227840
* Use the getSubtarget call off of the MachineFunction rather thanEric Christopher2015-02-021-7/+5
| | | | | | the TargetMachine. llvm-svn: 227839
* Remove unused class variables and update calls to get the subtargetEric Christopher2015-02-021-11/+3
| | | | | | off of the machine function. llvm-svn: 227837
* Sink queries into asserts since the variable is unused otherwise.Eric Christopher2015-02-021-3/+2
| | | | llvm-svn: 227836
* IR: Split out DebugInfoMetadata.h, NFCDuncan P. N. Exon Smith2015-02-029-105/+154
| | | | | | | | | Move debug-info-centred `Metadata` subclasses into their own header/source file. A couple of private template functions are needed from both `Metadata.cpp` and `DebugInfoMetadata.cpp`, so I've moved them to `lib/IR/MetadataImpl.h`. llvm-svn: 227835
* Update CMake build for removed files.Eric Christopher2015-02-021-1/+0
| | | | llvm-svn: 227834
* Get TargetRegisterInfo and TargetInstrInfo off of the MachineFunctionEric Christopher2015-02-023-20/+12
| | | | | | and remove unnecessary class variables. llvm-svn: 227832
* Use the function template getSubtarget to remove an explicit cast.Eric Christopher2015-02-021-1/+1
| | | | llvm-svn: 227831
* Grab TargetInstrInfo off of the MachineFunction and removeEric Christopher2015-02-023-13/+8
| | | | | | unnecessary class variables. llvm-svn: 227830
* Remove unused files.Eric Christopher2015-02-022-393/+0
| | | | llvm-svn: 227829
* Debug Info: Relax assertion in isUnsignedDIType() to allow floats to beAdrian Prantl2015-02-021-0/+1
| | | | | | | | | | | | | | | described by integer constants. This is a bit ugly, but if the source language allows arbitrary type casting, the debug info must follow suit. For example: void foo() { float a; *(int *)&a = 0; } For the curious: SROA replaces the float alloca with an i32 alloca, which is then optimized away and described via dbg.value(i32 0, ...). llvm-svn: 227827
* Fix some file headers, NFCDuncan P. N. Exon Smith2015-02-021-1/+1
| | | | llvm-svn: 227826
* R600/SI: 64-bit and larger memory access must be at least 4-byte alignedTom Stellard2015-02-021-4/+4
| | | | | | | | This is true for SI only. CI+ supports unaligned memory accesses, but this requires driver support, so for now we disallow unaligned accesses for all GCN targets. llvm-svn: 227822
* [AArch64] Prefer DUP/MOV ("CPY") to INS for vector_extract.Ahmed Bougacha2015-02-021-14/+6
| | | | | | | | | This avoids a partial false dependency on the previous content of the upper lanes of the destination vector register. Differential Revision: http://reviews.llvm.org/D7307 llvm-svn: 227820
* Since TargetLowering is already subtarget dependent just passEric Christopher2015-02-023-12/+9
| | | | | | | in the subtarget and stash it in the class so that lookups are easier and safer. llvm-svn: 227819
* Use the function template getSubtarget on the MachineFunctionEric Christopher2015-02-021-6/+3
| | | | | | rather than a larger explicit cast. llvm-svn: 227818
* Remove unused class variable.Eric Christopher2015-02-021-3/+1
| | | | llvm-svn: 227817
* Remove unused class variable.Eric Christopher2015-02-021-3/+1
| | | | llvm-svn: 227816
* Reuse a bunch of cached subtargets and remove getSubtarget callsEric Christopher2015-02-0211-199/+147
| | | | | | without a Function argument. llvm-svn: 227814
* Remove some unused forward declarations.Eric Christopher2015-02-021-4/+0
| | | | llvm-svn: 227812
* Fix ARM peephole optimizeCompare to avoid optimizing unsigned cmp to 0.Jan Wen Voung2015-02-021-11/+23
| | | | | | | | | | | | | | | | | | | Summary: Previously it only avoided optimizing signed comparisons to 0. Sometimes the DAGCombiner will optimize the unsigned comparisons to 0 before it gets to the peephole pass, but sometimes it doesn't. Fix for PR22373. Test Plan: test/CodeGen/ARM/sub-cmp-peephole.ll Reviewers: jfb, manmanren Subscribers: aemerson, llvm-commits Differential Revision: http://reviews.llvm.org/D7274 llvm-svn: 227809
* Fix: SLPVectorizer crashes with assertion when vectorizing a cmp instruction.Erik Eckstein2015-02-021-0/+1
| | | | | | | | | The commit r225977 uncovered this bug. The problem was that the vectorizer tried to read the second operand of an already deleted instruction. The bug didn't show up before r225977 because the freed memory still contained a non-null pointer. With r225977 deletion of instructions is delayed and the read operand pointer is always null. llvm-svn: 227800
* [Orc] Remove the OwnedModules list from OrcMCJITReplacement and useLang Hames2015-02-021-6/+2
| | | | | | | | | | | | ExecutionEngine's Modules list instead. This makes the owned modules visibile to ExecutionEngine. In particular, it is required for ExecutionEngine::runStaticConstructorsAndDestructors to work. Regression tests for Orc (which test this issue) will be committed shortly. llvm-svn: 227779
* [PowerPC] Put PPCEarlyReturn into its own source fileHal Finkel2015-02-013-165/+202
| | | | | | | | | | | PPCInstrInfo.cpp has ended up containing several small MI-level passes, and this is making the file harder to read than necessary. Split out PPCEarlyReturn into its own source file. NFC. Now that PPCInstrInfo.cpp does not also contain pass implementations, I hope that it will be slightly less unwieldy. llvm-svn: 227775
OpenPOWER on IntegriCloud