summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [Hexagon] Adding frame index + add load/store patterns.Colin LeMahieu2015-03-102-5/+20
| | | | llvm-svn: 231850
* Add SymbolVendor::GetMainFileSpec and simplify ↵Ilia K2015-03-103-16/+28
| | | | | | | | | | | | | | | | | | | CommandObjectTargetModulesList::PrintModule Summary: Add SymbolVendor::GetMainFileSpec and simplify CommandObjectTargetModulesList::PrintModule. All tests pass on OS X. Reviewers: abidh, clayborg Reviewed By: clayborg Subscribers: lldb-commits, clayborg, abidh Differential Revision: http://reviews.llvm.org/D8002 llvm-svn: 231849
* clang-format code that is about to change.Rafael Espindola2015-03-102-283/+219
| | | | llvm-svn: 231848
* [Hexagon] Simplifying deallocret definitions.Colin LeMahieu2015-03-101-12/+3
| | | | llvm-svn: 231847
* clang-format these declarations. NFC.Rafael Espindola2015-03-101-6/+3
| | | | llvm-svn: 231846
* Don't repeat names in comments. NFC.Rafael Espindola2015-03-101-25/+22
| | | | llvm-svn: 231845
* [Hexagon] Separating InstHexagon from OpcodeHexagon.Colin LeMahieu2015-03-103-47/+57
| | | | llvm-svn: 231844
* Add support for part-word atomics for PPCNemanja Ivanovic2015-03-1010-76/+240
| | | | | | http://reviews.llvm.org/D8090#inline-67337 llvm-svn: 231843
* Add new LLVM_OPTIMIZED_TABLEGEN build setting which configures, builds and ↵Chris Bieneman2015-03-102-3/+8
| | | | | | | | | | | | | | | | uses a release tablegen build when LLVM is configured with assertions enabled. Summary: This change leverages the cross-compiling functionality in the build system to build a release tablegen executable for use during the build. Reviewers: resistor, rnk Reviewed By: rnk Subscribers: rnk, joker.eph, llvm-commits Differential Revision: http://reviews.llvm.org/D7349 llvm-svn: 231842
* Use generic feature name for sanitizers that replace new and deleteEric Fiselier2015-03-1036-35/+39
| | | | llvm-svn: 231841
* [AArch64] Avoid going through GPRs for across-vector instructions.Ahmed Bougacha2015-03-108-124/+611
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds new node types for each intrinsic. For instance, for addv, we have AArch64ISD::UADDV, such that: (v4i32 (uaddv ...)) is the same as (v4i32 (scalar_to_vector (i32 (int_aarch64_neon_uaddv ...)))) that is, (v4i32 (INSERT_SUBREG (v4i32 (IMPLICIT_DEF)), (i32 (int_aarch64_neon_uaddv ...)), ssub) In a combine, we transform all such across-vector-lanes intrinsics to: (i32 (extract_vector_elt (uaddv ...), 0)) This has one big advantage: by making the extract_element explicit, we enable the existing patterns for lane-aware instructions to fire. This lets us avoid needlessly going through the GPRs. Consider: uint32x4_t test_mul(uint32x4_t a, uint32x4_t b) { return vmulq_n_u32(a, vaddvq_u32(b)); } We now generate: addv.4s s1, v1 mul.4s v0, v0, v1[0] instead of the previous: addv.4s s1, v1 fmov w8, s1 dup.4s v1, w8 mul.4s v0, v1, v0 rdar://20044838 llvm-svn: 231840
* [libcxx] Fix PR21580 - Undefined behavior in readEncodedPointer()Eric Fiselier2015-03-101-12/+20
| | | | | | | | | | | | | | Summary: This patch fixes a bug in `readEncodedPointer()` where it would read from memory that was not suitably aligned. This patch fixes it by using memcpy. Reviewers: danalbert, echristo, compnerd, mclow.lists Reviewed By: compnerd, mclow.lists Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D8179 llvm-svn: 231839
* [AArch64] Remove integer INSvi*lane patterns. NFCI.Ahmed Bougacha2015-03-101-4/+0
| | | | | | | | | | | | | | | | | | | | | | | Most are redundant, and they never seem to fire. The V128 integer patterns already exist in the INS multiclass. The duplicates only fire when the vector index type isn't i64, because they accept "imm" instead of an explicit "i64", as the instruction definition patterns do. TLI::getVectorIdxTy is i64 on AArch64, so this should never happen. Also, one of them had a typo: for i64, INSvi32lane was used. I noticed because I mistakenly used an explicit i32 as the idx type, and got ins.s for an i64 vector_insert. The V64 patterns also don't seem to ever fire, as V64 vector extract/insert are legalized to V128. The equivalent float patterns are unique and useful, so keep them. No functional change intended; none exhibited on the LIT and LNT tests. llvm-svn: 231838
* Don't evaluate rend() on every iteration of the loop.Chad Rosier2015-03-101-1/+3
| | | | llvm-svn: 231837
* LoopAccessAnalysis: Silence -Wreturn-type diagnostic from GCCDavid Majnemer2015-03-101-0/+3
| | | | llvm-svn: 231836
* Ensure the functions in our GPURuntime are visibleTobias Grosser2015-03-101-0/+2
| | | | llvm-svn: 231835
* Don't use LLVM_LIBRARY_VISIBILITY in cpp files.Benjamin Kramer2015-03-101-1/+3
| | | | llvm-svn: 231831
* [AsmPrinter][TLOF] Reintroduce AArch64 testBruno Cardoso Lopes2015-03-103-12/+106
| | | | | | | | | | | | Follow up from r231505. Fix the non-determinism by using a MapVector and reintroduce the AArch64 testcase. Defer deleting the got candidates up to the end and remove them in a bulk, avoiding linear time removal of each element. Thanks to Renato Golin for trying it out on other platforms. llvm-svn: 231830
* [Hexagon] Adding nodes for PIC support.Colin LeMahieu2015-03-102-9/+55
| | | | llvm-svn: 231829
* [Hexagon] Adding DuplexInst instruction format and duplex class defs.Colin LeMahieu2015-03-103-3/+116
| | | | llvm-svn: 231828
* Change the generation of the vmuluwm instruction to be based on the MUL opcode.Kit Barton2015-03-105-11/+15
| | | | | | Phabricator review: http://reviews.llvm.org/D8185 llvm-svn: 231827
* remove function names from comments; NFCSanjay Patel2015-03-101-29/+26
| | | | llvm-svn: 231826
* [Hexagon] Adding nodes for vector insert/extract lowering.Colin LeMahieu2015-03-102-0/+76
| | | | llvm-svn: 231825
* [Hexagon] Renaming HexagonJT to JT and adding CP for constantpool.Colin LeMahieu2015-03-103-6/+9
| | | | llvm-svn: 231824
* Change the datatype of DwarfExpression::Emit(Un)Signed to (u)int64_tAdrian Prantl2015-03-103-10/+10
| | | | | | so it matches the one used by ByteStreamer::Emit(U|S)LEB128. llvm-svn: 231823
* NVPTX: move NVPTXAllocaHoisting into the cpp fileBenjamin Kramer2015-03-103-34/+35
| | | | | | Also initialize without using static initialization. llvm-svn: 231822
* [LAA-memchecks] Comment improvementAdam Nemet2015-03-101-2/+2
| | | | | | I forgot to roll this into r231816. It was requested by Hal in D8122. llvm-svn: 231821
* Enable loop-rotate before loop-vectorize by defaultMichael Zolotukhin2015-03-101-2/+1
| | | | llvm-svn: 231820
* MS ABI: Mangle the location of the catchable type into it's nameDavid Majnemer2015-03-104-8/+26
| | | | | | | | Because the catchable type has a reference to its name, mangle the location to ensure that two catchable types with different locations are distinct. llvm-svn: 231819
* [LAA-memchecks 3/3] Introduce pointer partitions for memchecksAdam Nemet2015-03-102-13/+65
| | | | | | | | | | | | | | | | | This is the final patch that actually introduces the new parameter of partition mapping to RuntimePointerCheck::needsChecking. Another API (LAI::getInstructionsForAccess) is also exposed that helps to map pointers to instructions because ultimately we partition instructions. The WIP version of the Loop Distribution pass in D6930 has been adapted to use all this. See for example, how InstrPartitionContainer::computePartitionSetForPointers sets up the partitions using the above API and then calls to LAI::addRuntimeCheck with the pointer partitions. llvm-svn: 231818
* [LAA-memchecks 2/3] Move number of memcheck threshold checking to LVAdam Nemet2015-03-103-28/+24
| | | | | | | | | | | | | | | | | | | | | Now the analysis won't "fail" if the memchecks exceed the threshold. It is the transform pass' responsibility to perform the check. This allows the transform pass to further analyze/eliminate the memchecks. E.g. in Loop distribution we only need to check pointers that end up in different partitions. Note that there is a slight change of functionality here. The logic in analyzeLoop is that if dependence checking fails due to non-constant distance between the pointers, another attempt is made to prove safety of the dependences purely using run-time checks. Before this patch we could fail the loop due to exceeding the memcheck threshold after the first step, now we only check the threshold in the client after the full analysis. There is no measurable compile-time effect but I wanted to record this here. llvm-svn: 231817
* [LAA-memchecks 1/3] Split out NumComparisons checks. NFCAdam Nemet2015-03-101-22/+30
| | | | | | | | | | | | | | | The check for the number of memchecks will be moved to the client of this analysis. Besides allowing for transform-specific thresholds, this also lets Loop Distribution post-process the memchecks; Loop Distribution only needs memchecks between pointers of different partitions. The motivation for this first patch is to untangle the CanDoRT check from the NumComparison check before moving the NumComparison part. CanDoRT means that we couldn't determine the bounds for the pointer. Note that NumComparison is set independent of this flag. llvm-svn: 231816
* Factor out RemoteExecutor from SSHExecutor.Dan Albert2015-03-101-35/+50
| | | | | | | | | | | | | | | | Summary: A lot of the pieces of SSHExecutor can be shared with my AdbExecutor (https://android-review.googlesource.com/#/c/138807/). Reviewers: EricWF, jroelofs Reviewed By: jroelofs Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D8117 llvm-svn: 231815
* Recognize objc_bridge(id) on bridged casts to CF types.John McCall2015-03-103-0/+39
| | | | | | Fixes <rdar://20107345>. llvm-svn: 231814
* remove names from comments; NFCSanjay Patel2015-03-101-11/+9
| | | | llvm-svn: 231813
* fix typos; NFCSanjay Patel2015-03-101-2/+2
| | | | llvm-svn: 231812
* Make helper functions static. NFC.Benjamin Kramer2015-03-102-2/+5
| | | | llvm-svn: 231811
* NVPTX: Remove copy of LLVMInitializeNVPTXAsmPrinter.Benjamin Kramer2015-03-101-7/+0
| | | | | | | | If anyone is using this for some strange reason, LLVMInitializeNVPTXAsmPrinter does exactly the same thing and is what other LLVM tools are calling. llvm-svn: 231810
* Hexagon: Remove unused InstrMapping.Benjamin Kramer2015-03-101-8/+0
| | | | llvm-svn: 231809
* Add Debugger::InitializeForLLGS to allow ref counted LLGS initialization.Robert Flack2015-03-104-77/+107
| | | | | | | | | | | | | | After http://reviews.llvm.org/D8133 landed as r231550 process launch on remote platform stopped working. This adds Debugger::InitializeForLLGS and tracks whether one or both of Initialize and InitializeForLLGS have been called, calling only the corresponding lldb_private::Terminate* methods as necessary. Since lldb_private::Terminate calls lldb_private::TerminateForLLGS, the latter method may be called twice if Initialize was called for both however the terminate methods ensure they are only called once after being initialized. This still maintains the reduced binary size, though it does now technically link in lldb_private::Terminate on lldb-server even though this should never be called. This should resolve the issue raised in http://reviews.llvm.org/D8133 where Debugger::Terminate assumed that there were 0 references to debugger and terminated early. Differential Revision: http://reviews.llvm.org/D8183 llvm-svn: 231808
* [LoopAccesses 3/3] Print the dependences with -analyzeAdam Nemet2015-03-104-67/+32
| | | | | | | | | | The dependences are now expose through the new getInterestingDependences API so we can use that with -analyze too and fix the FIXME. This lets us remove the test that relied on -debug to check the dependences. llvm-svn: 231807
* [LoopAccesses 2/3] Allow querying of interesting dependencesAdam Nemet2015-03-102-24/+178
| | | | | | | | | | | | | | | | | | | | | | | Gather an array of interesting dependences rather than just failing after the first unsafe one and regarding the loop unsafe. Loop Distribution needs to be able to collect all dependences in order to isolate the dependence cycles into their own partition. Since the dependence checking algorithm is quadratic in terms of accesses sharing the same underlying pointer, I am applying a cut-off threshold (MaxInterestingDependence). Exceeding that, the logic reverts back to the original approach deeming the loop unsafe upon encountering the first unsafe dependence. The main idea of the patch is to split isDepedent from directly answering the question whether the dep is safe for vectorization to return a dependence type which then gets mapped to old boolean result using Dependence::isSafeForVectorization. Tested that this was compile-time neutral on SpecINT2006 LTO bitcode inputs. No assembly change on the testsuite including external. llvm-svn: 231806
* [LoopAccesses 1/3] Expose MemoryDepChecker to LAA usersAdam Nemet2015-03-102-127/+135
| | | | | | | | | | | | LoopDistribution needs to query various results of the dependence analysis. This series will expose some more APIs and state of the dependence checker. This patch is a simple one to just expose the DepChecker instance. The set is compile-time neutral measured with LTO bitcode files of SpecINT2006. Also there is no assembly change on the testsuite. llvm-svn: 231805
* Fix a comment for ValueObject::GetValueDidChange after r231526Ilia K2015-03-102-2/+2
| | | | | | | | | | | | | | | | | Summary: Fix a comment for ValueObject::GetValueDidChange after r231526. This fix was requested by @jingham. Reviewers: jingham, ki.stfu Reviewed By: ki.stfu Subscribers: lldb-commits, jingham Differential Revision: http://reviews.llvm.org/D8206 llvm-svn: 231804
* The semantic spelling enumeration should retain values to the spelling list ↵Aaron Ballman2015-03-101-1/+5
| | | | | | | | | | indexes used by the attribute. The only attribute affected by this in practice is the OpenCLImageAccessAttr, which has duplicate semantic spellings that are automatically stripped. We do not implicitly create an OpenCLImageAccessAttr, so this change only affects out of tree users. There is no way to test this behavior specifically that I can see, since this only affects implicit creation of attributes. Fixes PR22403. llvm-svn: 231803
* Store an optional section start label in MCSection.Rafael Espindola2015-03-1014-143/+105
| | | | | | | | | | | | This makes code that uses section relative expressions (debug info) simpler and less brittle. This is still a bit awkward as the symbol is created late and has to be stored in a mutable field. I will move the symbol creation earlier in the next patch. llvm-svn: 231802
* remove function names from comments; NFCSanjay Patel2015-03-101-11/+9
| | | | llvm-svn: 231801
* Teach lowering to correctly handle invoke statepoint and gc results tied to ↵Igor Laevsky2015-03-104-22/+130
| | | | | | | | | | | them. Note that we still can not lower gc.relocates for invoke statepoints. Also it extracts getCopyFromRegs helper function in SelectionDAGBuilder as we need to be able to customize type of the register exported from basic block during lowering of the gc.result. (Resubmitting this change after not being able to reproduce buildbot failure) Differential Revision: http://reviews.llvm.org/D7760 llvm-svn: 231800
* [BranchFolding] Remove MMOs during tail merge to preserve dependencies.Chad Rosier2015-03-103-0/+81
| | | | | | | | | | | | | | | | | | When tail merging it may be necessary to remove MMOs from memory operations to ensures later passes (e.g., MI sched) conservatively compute dependencies. Currently, we only remove the MMO from the common tail if the MMO doesn't match with the relative instruction in the non-common tail(s). A more robust solution would be to add multiple MMOs from the duplicate MIs to the new MI. Currently ScheduleDAGInstrs.cpp ignores all MMOs on instructions with multiple MMOs, so this solution is equivalent for the time being. No test case included as this is incredibly difficult to reproduce. Patch was a collaborative effort between Ana Pazos and myself. Phabricator: http://reviews.llvm.org/D7769 llvm-svn: 231799
* R600/SI: Add _IDXEN and _BOTHEN variants for buffer_storeTom Stellard2015-03-101-0/+15
| | | | llvm-svn: 231798
OpenPOWER on IntegriCloud