summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Clear SectionSymbols in MCContext::ResetKeno Fischer2015-10-091-0/+1
| | | | | | | | | | | | | This was just forgotten when SectionSymbols was introduced and could cause corruption if the MCContext was reused after Reset. Reviewers: rafael Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D13547 llvm-svn: 249854
* Consolidate invariant loadsJohannes Doerfert2015-10-0912-53/+480
| | | | | | | | | | | | | | | | | | | | | | | | | | | If a (assumed) invariant location is loaded multiple times we generated a parameter for each location. However, this caused compile time problems for several benchmarks (e.g., 445_gobmk in SPEC2006 and BT in the NAS benchmarks). Additionally, the code we generate is suboptimal as we preload the same location multiple times and perform the same checks on all the parameters that refere to the same value. With this patch we consolidate the invariant loads in three steps: 1) During SCoP initialization required invariant loads are put in equivalence classes based on their pointer operand. One representing load is used to generate a parameter for the whole class, thus we never generate multiple parameters for the same location. 2) During the SCoP simplification we remove invariant memory accesses that are in the same equivalence class. While doing so we build the union of all execution domains as it is only important that the location is at least accessed once. 3) During code generation we only preload one element of each equivalence class with the unified execution domain. All others are mapped to that preloaded value. Differential Revision: http://reviews.llvm.org/D13338 llvm-svn: 249853
* AArch64: Make getNextNode() cleanup in r249764 more clearDuncan P. N. Exon Smith2015-10-091-2/+2
| | | | | | | | | | | | After r249764, if you didn't see the full context, it looked like `std::next(I)` would get the same result as `++MachineBasicBlock::iterator(I)`. However, `I` is a `MachineInstr*` (not a `MachineBasicBlock::iterator`). Use the `getIterator()` helper I added later (r249782) to make this code more clear. llvm-svn: 249852
* CodeGen: Start removing implicit conversions to/from list iterators, NFCDuncan P. N. Exon Smith2015-10-096-18/+18
| | | | | | | Start removing implicit conversions to/from list iterators in CodeGen, ala r249782 for IR. A lot more to go after this. llvm-svn: 249851
* Revert "Support: Partially revert r249782 to unbreak clang build"Duncan P. N. Exon Smith2015-10-091-4/+4
| | | | | | | | This reverts commit r249783, fully reinstating r249782. I've fixed the bug in clang: it was a non-const iterator that dereferenced to const (but had an implicit conversion to non-const). llvm-svn: 249850
* Analysis: Make CFG::graph_iterator dereference to non-constDuncan P. N. Exon Smith2015-10-091-1/+1
| | | | | | | | | | | | | | | Since the original commit in r145858, we've had `CFG::graph_iterator` and `CFG::const_graph_iterator`, and both have derefenced to a `const`-ified `value_type`. The former has an implicit conversion to non-`const`, which is how this worked at all until r249782 started using the dereference operator (partially reverted in r249783). This fixes the non-const iterator to be non-const (sometimes const-iterators are intentional, but with a separate const-ified class (and a non-const implicit conversion leak) that's not likely to be the case here). llvm-svn: 249849
* Make HeaderLineno a local variable.Dehao Chen2015-10-091-12/+8
| | | | | | | | http://reviews.llvm.org/D13576 As we are using hierarchical profile, there is no need to keep HeaderLineno a member variable. This is because each level of the inline stack will have its own header lineno. One should use the head lineno of its own inline stack level instead of the actual symbol. llvm-svn: 249848
* Fix pdb.test when python is not on PATHReid Kleckner2015-10-091-1/+1
| | | | llvm-svn: 249847
* Fix VFS GCC unittest on WindowsReid Kleckner2015-10-091-0/+3
| | | | llvm-svn: 249846
* Fixed two bugs in llvm-objdump’s printing of Objective-C meta dataKevin Enderby2015-10-094-0/+29
| | | | | | | | | | | from malformed Mach-O files that caused crashes. The first because the offset in a dyld bind table entry was out of range. The second because their was no image info section and the routine printing it did not have the need check to see the section did not exist. rdar://22983603 llvm-svn: 249845
* [CMake] [Darwin] [Builtins] Fixing a typo that was keeping the OS X 10.4 ↵Chris Bieneman2015-10-091-1/+1
| | | | | | builtins library from being built properly. llvm-svn: 249844
* Don't silently ignore an error.Rafael Espindola2015-10-091-3/+5
| | | | | | Found by inspection. llvm-svn: 249843
* ELF2: Call OutputSection::finalize() from createSections.Rui Ueyama2015-10-091-3/+6
| | | | | | | Previously, we did this in assignAddresses(), but finalization was not part of assigning addresses, so this is a better place. llvm-svn: 249842
* ValueTracking: use getAlignment in isAlignedArtur Pilipenko2015-10-091-14/+1
| | | | | | | | Reviewed By: reames Differential Revision: http://reviews.llvm.org/D13517 llvm-svn: 249841
* Remove long-forgotten plugin virtuals.Bruce Mitchener2015-10-096-80/+0
| | | | | | | | | | | | | | | Summary: EnablePluginLogging, GetPluginCommandHelp and ExecutePluginCommand aren't implemented or used anywhere, so remove them from the Hexagon and POSIX Dynamic Loaders as well as the FreeBSD process. Reviewers: clayborg, labath, emaste Subscribers: lldb-commits, emaste Differential Revision: http://reviews.llvm.org/D13581 llvm-svn: 249840
* ELF2: Emit a PT_PHDR header as the first entry of the program header.Rui Ueyama2015-10-0910-23/+118
| | | | | | PT_PHDR entry points to the program header itself. llvm-svn: 249839
* [LLDB] Fix display of value of a vector variables in watchpoint operationsMohit K. Bhakkad2015-10-094-3/+95
| | | | | | | | Reviewers: clayborg, zturner. Subscribers: jaydeep, bhushan, sagar, nitesh.jain, brucem,lldb-commits. Differential Revision: http://reviews.llvm.org/D13202 llvm-svn: 249838
* [LLDB][MIPS] fix watchpoint searched on client side for same masked variablesMohit K. Bhakkad2015-10-091-0/+2
| | | | | | | | Reviewers: clayborg, jingham. Subscribers: jaydeep, bhushan, sagar, nitesh.jain, brucem,lldb-commits. Differential Revision: http://reviews.llvm.org/D13548 llvm-svn: 249837
* [dsymutil] Prevent warningFrederic Riss2015-10-091-1/+2
| | | | llvm-svn: 249836
* Revert "[ELF2] - Implemented rel[a].plt sections"Rafael Espindola2015-10-096-55/+29
| | | | | | | | | | | | | | | | This reverts commit r249816. It broke building llvm with lld: $ ./bin/FileCheck ./bin/FileCheck: error while loading shared libraries: unexpected PLT reloc type 0x06 I think the only thing that is wrong with this patch is that it is too soon. The plt we create (and its relocs) don't support lazy loading, so they have to be relocated as ordinary dynamic relocations. llvm-svn: 249835
* Improve ISel across lane float min/max reductionJun Bum Lim2015-10-092-12/+79
| | | | | | | | | | | | | | | | | | | | In vectorized float min/max reduction code, the final "reduce" step is sub-optimal. In AArch64, this change wll combine : svn0 = vector_shuffle t0, undef<2,3,u,u> fmin = fminnum t0,svn0 svn1 = vector_shuffle fmin, undef<1,u,u,u> cc = setcc fmin, svn1, ole n0 = extract_vector_elt cc, #0 n1 = extract_vector_elt fmin, #0 n2 = extract_vector_elt fmin, #1 result = select n0, n1,n2 into : result = llvm.aarch64.neon.fminnmv t0 This change extends r247575. llvm-svn: 249834
* Amending r249721 to properly handle pathological attribute-related names ↵Aaron Ballman2015-10-092-5/+6
| | | | | | | | like __ and ____. Patch by Adrian Zgorzalek! llvm-svn: 249833
* [VFS] Rename RedirectingFS internals to avoid collisions with public clang ↵Benjamin Kramer2015-10-091-24/+29
| | | | | | | | classes Hopefully fixes the MSVC build. NFC intended. llvm-svn: 249832
* [VFS] Wire up driver VFS through tooling.Benjamin Kramer2015-10-091-4/+5
| | | | | | | | Sadly I don't currently have a way to tests this as the driver is always initialized with the default triple and finding system headers is system specific. llvm-svn: 249831
* [VFS] Just normalize away .. and . in paths for in-memory file systems.Benjamin Kramer2015-10-093-18/+14
| | | | | | This simplifies the code and gets us support for .. for free. llvm-svn: 249830
* [VFS] Wire up multilib toolchain code to the VFS.Benjamin Kramer2015-10-092-13/+20
| | | | | | This lets a VFSified driver actually validate the GCC paths. llvm-svn: 249829
* dotest.py: Fail if we detect multiple tests with the same namePavel Labath2015-10-091-0/+9
| | | | | | | | | | | | | | | | Summary: Log files produced by dotest have names derived from the test name, and this produces errors in case we have multiple tests with the same name. Additionally, it's good if the test name explains what the test is testing (which it clearly doesn't do well if there are multiple tests with identical names). This commit makes the presence of such tests a hard error. Reviewers: tberghammer, zturner Subscribers: iancottrell, lldb-commits Differential Revision: http://reviews.llvm.org/D13588 llvm-svn: 249828
* Fix a crash, an UB and add some assert to dwo symbol file handlingTamas Berghammer2015-10-095-5/+26
| | | | llvm-svn: 249827
* Fix the windows build after r249747Tamas Berghammer2015-10-091-1/+3
| | | | llvm-svn: 249826
* Fix the way dwo tests are skipped on darwinTamas Berghammer2015-10-091-6/+7
| | | | | | | | We want to skip these tests when the target platform is darwin, not when the host because they have to be enabled in case of darwin -> android llvm-svn: 249825
* [SystemZ] Remove unused code in SystemZElimCompare.cppJonas Paulsson2015-10-091-19/+7
| | | | | | | The Reference IndirectDef and IndirectUse members were unused and therefore removed. llvm-svn: 249824
* Rename one of the TestGoASTContextsPavel Labath2015-10-091-0/+0
| | | | llvm-svn: 249823
* Vector element extraction without stack operations on Power 8Nemanja Ivanovic2015-10-094-23/+1749
| | | | | | | | | | | | | | | | | | | | | | | | | This patch corresponds to review: http://reviews.llvm.org/D12032 This patch builds onto the patch that provided scalar to vector conversions without stack operations (D11471). Included in this patch: - Vector element extraction for all vector types with constant element number - Vector element extraction for v16i8 and v8i16 with variable element number - Removal of some unnecessary COPY_TO_REGCLASS operations that ended up unnecessarily moving things around between registers Not included in this patch (will be in upcoming patch): - Vector element extraction for v4i32, v4f32, v2i64 and v2f64 with variable element number - Vector element insertion for variable/constant element number Testing is provided for all extractions. The extractions that are not implemented yet are just placeholders. llvm-svn: 249822
* Fix regression caused by r249769Tamas Berghammer2015-10-092-2/+3
| | | | | | | | * Change TestSettings to test qith go instead of pascal as ToT pascal support isn't complete * Fix crash inside PluginManager llvm-svn: 249821
* [MemCpyOpt] Fix wrong merging adjacent nontemporal stores into memset calls.Andrea Di Biagio2015-10-092-0/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Pass MemCpyOpt doesn't check if a store instruction is nontemporal. As a consequence, adjacent nontemporal stores are always merged into a memset call. Example: ;;; define void @foo(<4 x float>* nocapture %p) { entry: store <4 x float> zeroinitializer, <4 x float>* %p, align 16, !nontemporal !0 %p1 = getelementptr inbounds <4 x float>, <4 x float>* %dst, i64 1 store <4 x float> zeroinitializer, <4 x float>* %p1, align 16, !nontemporal !0 ret void } !0 = !{i32 1} ;;; In this example, the two nontemporal stores are combined to a memset of zero which does not preserve the nontemporal hint. Later on the backend (tested on a x86-64 corei7) expands that memset call into a sequence of two normal 16-byte aligned vector stores. opt -memcpyopt example.ll -S -o - | llc -mcpu=corei7 -o - Before: xorps %xmm0, %xmm0 movaps %xmm0, 16(%rdi) movaps %xmm0, (%rdi) With this patch, we no longer merge nontemporal stores into calls to memset. In this example, llc correctly expands the two stores into two movntps: xorps %xmm0, %xmm0 movntps %xmm0, 16(%rdi) movntps %xmm0, (%rdi) In theory, we could extend the usage of !nontemporal metadata to memcpy/memset calls. However a change like that would only have the effect of forcing the backend to expand !nontemporal memsets back to sequences of store instructions. A memset library call would not have exactly the same semantic of a builtin !nontemporal memset call. So, SelectionDAG will have to conservatively expand it back to a sequence of !nontemporal stores (effectively undoing the merging). Differential Revision: http://reviews.llvm.org/D13519 llvm-svn: 249820
* Fix disabling of dwo testsPavel Labath2015-10-091-0/+1
| | | | | | without this, dwo tests would be run even if they were meant to be disabled. llvm-svn: 249819
* [ELF2] Check for TLS mismatch in symbol resolution.Igor Kudrin2015-10-095-9/+32
| | | | | | | | | | | The linker should generate an error if a TLS symbol is resolved for a non-TLS reference and vice versa. The patch addresses PR24244 (https://llvm.org/bugs/show_bug.cgi?id=24244) Differential Revision: http://reviews.llvm.org/D13550 llvm-svn: 249817
* [ELF2] - Implemented rel[a].plt sectionsGeorge Rimar2015-10-096-29/+55
| | | | | | | | .rela.plt contains list of elements in the PLT, which are liable to the relocation during the dynamic linking. Differential Revision: http://reviews.llvm.org/D13569 llvm-svn: 249816
* [VFS] Port tooling to use the in-memory file system.Benjamin Kramer2015-10-093-29/+80
| | | | | | | | | | This means file remappings can now be managed by ClangTool (or a ToolInvocation user) instead of by ToolInvocation itself. The ToolInvocation remapping is still in place so users can migrate. Differential Revision: http://reviews.llvm.org/D13474 llvm-svn: 249815
* [EarlyCSE] Address post commit review for r249523.Arnaud A. de Grandmaison2015-10-091-10/+10
| | | | llvm-svn: 249814
* [SystemZ] Remove superfluous braces in SystemZShortenInst.cppJonas Paulsson2015-10-091-2/+2
| | | | llvm-svn: 249812
* [SystemZ] Minor bugfixes.Jonas Paulsson2015-10-092-4/+5
| | | | | | | | | | | | | | LLCH, LLHH and CLIH had the wrong register classes for the def-operand. Tie operands if changing opcode to an instruction with tied ops. Comment typo fix. These fixes were needed in order to make regression test case SystemZ/asm-18.ll pass with -verify-machineinstrs (not used by default). Reviewed by Ulrich Weigand. llvm-svn: 249811
* [SystemZ] Bugfix in SystemZAsmParser.cpp.Jonas Paulsson2015-10-091-4/+6
| | | | | | | | | Let parseRegister() allow RegFP Group if expecting RegV Group, since the %f register prefix yields the FP group even while used with vector instructions. Reviewed by Ulrich Weigand. llvm-svn: 249810
* Addressing warning due to rL249651Mohit K. Bhakkad2015-10-091-3/+0
| | | | llvm-svn: 249809
* [libFuzzer] don't print large artifacts to stderrKostya Serebryany2015-10-091-6/+7
| | | | llvm-svn: 249808
* [libFuzzer] add -artifact_prefix flagKostya Serebryany2015-10-096-6/+15
| | | | llvm-svn: 249807
* Fix handling of LLDB_VERS_GENERATED_FILE.Bruce Mitchener2015-10-094-16/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This is Darwin only. The symbol defined by ${LLDB_VERS_GENERATED_FILE} is used by source/lldb.cpp, so anything that uses lldb.cpp (which is in lldbBase) should also have the generated symbol. This means that the entire process can be centralized within source/CMakeLists.txt where lldbBase is constructed. Additionally, the custom command should have dependencies on the project file as well as the generation script so that if either changes, the version file is correctly re-generated and everything is re-linked appropriately. * cmake/LLDBDependencies.cmake: Remove everything related to the generated version file from here. * source/CMakeLists.txt: On Darwin, add the generated version file to the sources that make up lldbBase. Also, create a custom target and make lldbBase depend on it to re-generate the generated file as needed. * source/API/CMakeLists.txt: Don't need to build the generated version file here or use it to control linking against swig_wrapper. * tools/lldb-server/CMakeLists.txt: Likewise. Reviewers: dawn, sas, clayborg, zturner Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D13552 llvm-svn: 249806
* ARM: tweak WoA frame loweringSaleem Abdulrasool2015-10-092-8/+30
| | | | | | | | | | Accept r11 when targeting Windows on ARM rather than just low registers. Because we are in a thumb-2 only mode, this may be slightly more expensive in code size, but results in better code for the environment since it spills the frame register, which is generally desired for fast stack walking as per the ABI. llvm-svn: 249804
* ELF2: Sort. NFC.Rui Ueyama2015-10-091-1/+1
| | | | llvm-svn: 249803
* [SCEV] Call `StrengthenNoWrapFlags` after `GroupByComplexity`; NFCISanjoy Das2015-10-091-4/+4
| | | | | | | | | The current implementation of `StrengthenNoWrapFlags` is agnostic to the order of `Ops`, so this commit should not change anything semantic. An upcoming change will make `StrengthenNoWrapFlags` sensitive to the order of `Ops`. llvm-svn: 249802
OpenPOWER on IntegriCloud