summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [CodeGen] Combine concat_vectors of scalars into build_vector.Ahmed Bougacha2015-04-132-0/+185
| | | | | | | | | | | | | Combine something like: (v8i8 concat_vectors (v2i8 bitcast (i16)) x4) into: (v8i8 (bitcast (v4i16 BUILD_VECTOR (i16) x4))) If any of the scalars are floating point, use that throughout. Differential Revision: http://reviews.llvm.org/D8948 llvm-svn: 234809
* ELF: Move definitions from {Dynamic,ELF}File.h to .cpp files.Rui Ueyama2015-04-135-811/+897
| | | | | | | | | | | | | | | | | | | DynamicFile and ELFFile are instantiated for four different types, ELF{32,64}{BE,LE}. Because the classes are instantiated in each compilation unit, including the header file makes object files 10MB larger. On Windows, issue of excessive template instantiation is critical, since the regular COFF file supports only up to 65534 sections. (We could use the extended COFF file format, but generating that much COMDAT sections is not a good thing in the first place because it means long compile time and long link time.) I confirmed that this change makes AArch64TargetHandler.cpp.o from 21MB to 8.5MB. It feels still too large, but I think it's a good start. llvm-svn: 234808
* Allow printing functions with an optional annotationwriterDaniel Berlin2015-04-132-0/+11
| | | | llvm-svn: 234807
* [Orc] Disambiguate call to make_unique. This should fix the builders broken byLang Hames2015-04-131-1/+2
| | | | | | r234805. llvm-svn: 234806
* [Orc] Add an Orc layer for applying arbitrary transforms to IR, use it to addLang Hames2015-04-134-9/+194
| | | | | | | debugging output to the LLI orc-lazy JIT, and update the orc-lazy "hello.ll" test to actually test for lazy compilation. llvm-svn: 234805
* Add new warning -Wrange-loop-analysis to warn on copies during loops.Richard Trieu2015-04-134-3/+474
| | | | | | | | | | | | -Wrange-loop-analysis is a subgroup of -Wloop-analysis and will warn when a range-based for-loop makes copies of the elements in the range. If possible, suggest the proper type to prevent copies, or the non-reference to help distinguish copy versus non-copy forms. Existing warnings in -Wloop-analysis are moved to -Wfor-loop-analysis, also a subgroup of -Wloop-analysis. Differential Revision: http://reviews.llvm.org/D4169 llvm-svn: 234804
* Skip the ↵Ilia K2015-04-131-0/+1
| | | | | | TestGdbRemoteRegisterState.test_grp_register_save_restore_works_no_suffix_debugserver_dsym test on OS X according to the bug 23181 llvm-svn: 234803
* DebugInfo: Simplify a few more wrappersDuncan P. N. Exon Smith2015-04-131-114/+37
| | | | | | | | | | This is almost NFC, but I'm removing some assertions against `nullptr`. The assertions aren't worth all that much since we'll typically get segfaults at the same site (and I imagine ASan catches this sort of thing), and besides: the whole idea is to replace the `DIDescriptor` hierarchy with raw pointers to the new one. llvm-svn: 234802
* Settle on a specific triple for the aarch64 testcaseKrzysztof Parzyszek2015-04-131-1/+1
| | | | llvm-svn: 234801
* SelectionDAG: Stop using DIVariable::isInlinedFnArgument()Duncan P. N. Exon Smith2015-04-133-14/+3
| | | | | | | | | | | | | | | | | | Instead of calling the somewhat confusingly-named `DIVariable::isInlinedFnArgument()`, do the check directly here. There's possibly a small functionality change here: instead of `dyn_cast<>`'ing `DV->getScope()` to `MDSubprogram`, I'm looking up the scope chain for the actual subprogram. I suspect that this is a no-op for function arguments so in practise there isn't a real difference. I've also added a `FIXME` to check the `inlinedAt:` chain instead, since I wonder if that would be more reliable than the `MDSubprogram::describes()` function. Since this was the only user of `DIVariable::isInlinedFnArgument()`, delete it. llvm-svn: 234799
* [CMake] Updates to llvm-shlib to support overriding exports list and added ↵Chris Bieneman2015-04-132-10/+22
| | | | | | an option to export all symbols. llvm-svn: 234798
* Also add mtriple to the aarch64 testcaseKrzysztof Parzyszek2015-04-131-1/+1
| | | | llvm-svn: 234797
* DebugInfo: Remove DIGlobalVariable::getGlobal()Duncan P. N. Exon Smith2015-04-133-9/+3
| | | | | | | | `DIGlobalVariable::getGlobal()` isn't really helpful, it just does a `dyn_cast_or_null<>`. Simplify its only user by doing the cast directly and delete the code. llvm-svn: 234796
* Expand ADDO/SUBO on HexagonKrzysztof Parzyszek2015-04-131-0/+8
| | | | llvm-svn: 234795
* Skip libc++ data formmatting tests on Windows. libc++ hasn't been ported to ↵Adrian McCarthy2015-04-138-0/+8
| | | | | | windows yet. llvm-svn: 234794
* Add mtriple to test case to avoid problems with different naming schemesKrzysztof Parzyszek2015-04-131-1/+1
| | | | llvm-svn: 234793
* StripSymbols: Use DIGlobalVariable::getConstant() instead of getGlobal()Duncan P. N. Exon Smith2015-04-131-1/+1
| | | | | | | | | | | | | The only difference between the two is a `dyn_cast<>` to `GlobalVariable`. If optimizations have left anything behind when a global gets replaced, then it doesn't seem like the debug info is dead. I can't seem to find an optimization that would leave behind a non-`GlobalVariable` without nulling the reference entirely, so I haven't added a testcase (but I'll be deleting `getGlobal()` in a future commit). llvm-svn: 234792
* ELF: Simplify alignment check. NFC.Rui Ueyama2015-04-131-4/+1
| | | | llvm-svn: 234791
* ELF: s/ELFTy/ELFT/ for consistency.Rui Ueyama2015-04-135-20/+20
| | | | llvm-svn: 234790
* Revert r234613 (and follow-ups 234614, 234616, 234618), it caused PR23216.Nico Weber2015-04-1311-404/+371
| | | | llvm-svn: 234789
* GCC complains thusly: "attributes at the beginning of statement are ignored ↵Nick Lewycky2015-04-131-1/+1
| | | | | | [-Werror=attributes]". Very well then! NFC llvm-svn: 234788
* Revert r234786, it contained a bunch of stuff I did not mean to commit.Nico Weber2015-04-1316-385/+409
| | | | llvm-svn: 234787
* Revert r234613 (and follow-ups 234614, 234616, 234618), it caused PR23216.Nico Weber2015-04-1316-409/+385
| | | | llvm-svn: 234786
* [RwriteStatepointsForGC] Minor indentation and naming [NFC]Philip Reames2015-04-131-39/+30
| | | | | | Use early-return style that's preferred in LLVM and updating the naming in places I touched with other changes in the last few days. Hopefully, NFC. llvm-svn: 234785
* Remove else after return.Rui Ueyama2015-04-131-3/+2
| | | | llvm-svn: 234784
* DebugInfo: Remove a few unnecessary wrappersDuncan P. N. Exon Smith2015-04-131-7/+3
| | | | llvm-svn: 234783
* DebugInfo: Assume valid pointer in DISubprogram::replaceFunction()Duncan P. N. Exon Smith2015-04-131-4/+1
| | | | | | | Other accessors assume this already; not sure how `replaceFunction()` got left behind. llvm-svn: 234782
* Fix formatting and remove excessive parentheses.Rui Ueyama2015-04-131-7/+9
| | | | llvm-svn: 234781
* Subtraction is not commutative. Fixes PR23212!Nick Lewycky2015-04-133-7/+19
| | | | llvm-svn: 234780
* [RewriteStatepointsForGC] Avoid inserting empty holderPhilip Reames2015-04-131-0/+4
| | | | | | We use dummy calls to adjust the liveness of values over statepoints in the midst of the insertion. If there are no values which need held live, there's no point in actually inserting the holder. llvm-svn: 234779
* DebugInfo: Migrate DISubprogram::describes() to new hierarchy, NFCDuncan P. N. Exon Smith2015-04-134-13/+16
| | | | | | | | I don't really like this function at all -- I think it should be as simple as `return getFunction() == F` -- but for now this seems like the best we can do. llvm-svn: 234778
* Remove this test until I figure out why it failsKrzysztof Parzyszek2015-04-131-31/+0
| | | | llvm-svn: 234777
* Reapply "Verifier: Check for incompatible bit piece expressions"Duncan P. N. Exon Smith2015-04-135-32/+139
| | | | | | | | | | | | | | | | | | | | | This reverts commit r234717, reapplying r234698 (in spirit). As described in r234717, the original `Verifier` check had a use-after-free. Instead of storing pointers to "interesting" debug info intrinsics whose bit piece expressions should be verified once we have typerefs, do a second traversal. I've added a testcase to catch the `llc` crasher. Original commit message: Verifier: Check for incompatible bit piece expressions Convert an assertion into a `Verifier` check. Bit piece expressions must fit inside the variable, and mustn't be the entire variable. Catching this in the verifier will help us find bugs sooner, and makes `DIVariable::getSizeInBits()` dead code. llvm-svn: 234776
* The generation of the hierarchy used by hierarchical barrier improved in how ↵Andrey Churbanov2015-04-131-43/+78
| | | | | | the generation reacts to affinity set to none, or disabled, or no affinity available, or oversubscription. Some cleanup actions based on review comments to follow: need to use meaningful names instead of digital constants, e.g. use enumerators. llvm-svn: 234775
* Use FileCheck for testMatthias Braun2015-04-131-13/+17
| | | | llvm-svn: 234774
* [inliner] Don't inline a function if it doesn't have exactly the sameAkira Hatanaka2015-04-132-4/+56
| | | | | | | | target-cpu and target-features attribute strings as the caller. Differential Revision: http://reviews.llvm.org/D8984 llvm-svn: 234773
* Make the ARM testcase from r234764 also pass on ThumbKrzysztof Parzyszek2015-04-131-3/+3
| | | | llvm-svn: 234772
* Be sure to complete base classes when importing them.Greg Clayton2015-04-131-1/+4
| | | | llvm-svn: 234771
* Missing `-lpthread` causes gcc test failure.Chaoren Lin2015-04-134-24/+6
| | | | | | | | | | | | | | | Summary: `-lpthread` was removed for `g++ -std=c++11` on Linux due to llvm.org/pr21553, but the original issue doesn't seem to be reproducible anymore. Even if it were, it had nothing to do with compiling inferiors. Reviewers: sbest, sivachandra, chying Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D8991 llvm-svn: 234770
* [RewriteStatepointsForGC] Fix a latent bug in normalization for invoke ↵Philip Reames2015-04-131-37/+40
| | | | | | | | | | statepoint [NFC] Since we're restructuring the CFG, we also need to make sure to update the analsis passes. While I'm touching the code, I dedicided to restructure it a bit. The code involved here was very confusing. This change moves the normalization to essentially being a pre-pass before the main insertion work and updates a few comments to actually say what is happening and *why*. The restructuring should be covered by existing tests. I couldn't easily see how to create a test for the invalidation bug. Suggestions welcome. llvm-svn: 234769
* Revert revisions r234755, r234759, r234760Jan Vesely2015-04-1315-173/+30
| | | | | | | | | | | Revert "Remove default in fully-covered switch (to fix Clang -Werror -Wcovered-switch-default)" Revert "R600: Add carry and borrow instructions. Use them to implement UADDO/USUBO" Revert "LegalizeDAG: Try to use Overflow operations when expanding ADD/SUB" Using overflow operations fails CodeGen/Generic/2011-07-07-ScheduleDAGCrash.ll on hexagon, nvptx, and r600. Revert while I investigate. llvm-svn: 234768
* [CodeGen] Fix crash with duplicated mangled name.Argyrios Kyrtzidis2015-04-133-8/+28
| | | | | | Patch by Yunzhong Gao! llvm-svn: 234767
* [RewriteStatepointsForGC] Strengthen assertions around livenessPhilip Reames2015-04-131-0/+18
| | | | | | This is related to the issues addressed in 234651. These assertions check the properties ensured by that change at the place of use. Note that a similiar property is checked in checkBasicSSA, but without the reachability constraint. Technically, the liveness would be correct to include unreachable values, but this would be problematic for actual relocation. llvm-svn: 234766
* Skip a few tests on OS X according to the bug 23181Ilia K2015-04-132-0/+2
| | | | llvm-svn: 234765
* Allow memory intrinsics to be tail callsKrzysztof Parzyszek2015-04-1319-30/+222
| | | | llvm-svn: 234764
* DAGCombiner: Fix crash in select(select) opt.Matthias Braun2015-04-132-2/+23
| | | | | | | | | In case of different types used for the condition of the selects the select(select) -> select(and) normalisation cannot be performed. See also: http://reviews.llvm.org/D7622 llvm-svn: 234763
* [libclang] Add functions to get information about fields.Argyrios Kyrtzidis2015-04-138-33/+239
| | | | | | Patch by Loïc Jaquemet! llvm-svn: 234762
* [RewriteStatepointsForGC] Move an expensive debugging check to XDEBUGPhilip Reames2015-04-131-33/+44
| | | | | | | | | | The check in question is attempting to help find cases where we haven't relocated a pointer at a safepoint we should have. It does this by coercing the value to null at any safepoint which doesn't relocate it. Unfortunately, this turns out to be rather expensive in terms of memory usage and time. The number of stores inserted can grow with O(number of values x number of statepoints). On at least one example I looked at, over half of peak memory usage was coming from this check. With this change, the check is no longer enabled by default in Asserts builds. It is enabled for expensive asserts builds and has a command line option to enable it in both Asserts and non-Asserts builds. llvm-svn: 234761
* Remove default in fully-covered switch (to fix Clang -Werror ↵David Blaikie2015-04-131-1/+0
| | | | | | -Wcovered-switch-default) llvm-svn: 234760
* R600: Add carry and borrow instructions. Use them to implement UADDO/USUBOJan Vesely2015-04-1311-10/+135
| | | | | | | | | | | | | | | | v2: tighten the sub64 tests v3: rename to CARRY/BORROW v4: fixup test cmdline add known bits computation use sign extend instead of sub 0,x better add test v5: remove redundant break move lowering to separate functions fix comments Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu> Reviewers: arsenm llvm-svn: 234759
OpenPOWER on IntegriCloud