summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [Hexagon] Bit-based instruction simplificationKrzysztof Parzyszek2015-10-209-4/+2930
| | | | | | | Analyze bit patterns of operands and values of instructions to perform various simplifications, dead/redundant code elimination, etc. llvm-svn: 250868
* [Hexagon] Fix isNVStorable flag in .td filesKrzysztof Parzyszek2015-10-202-20/+48
| | | | | | | An upper half and a double word cannot be used as value sources in a new-value store. llvm-svn: 250867
* Revert r247977, "clang/test/lit.cfg: *-ps4 doesn't have appropriate driver ↵NAKAMURA Takumi2015-10-201-1/+1
| | | | | | | | yet. Mark it as "non-clang-driver"." They, "tests requiring clang-driver", should work in trunk since ps4 driver has been introduced. llvm-svn: 250866
* Fix symbol value calculation in SHF_MERGE.Rafael Espindola2015-10-203-3/+27
| | | | | | We would get the wrong value if the symbol was in the middle of an entry. llvm-svn: 250865
* [ELF2] Determine the order of entries of symbol tables in the finalize() phase.Igor Kudrin2015-10-203-40/+38
| | | | | | | | | | | | | * Move the responsibility to call SymbolBody::setDynamicSymbolTableIndex() from the hash table to the dynamic symbol table. * Hash table is not longer responsible for filling the dynamic symbol table. * The final order of symbols of both symbol tables is set before writing phase starts. * Remove repeaded scan of the symbol table during writting SymbolTableSection. Differential Revision: http://reviews.llvm.org/D13911 llvm-svn: 250864
* [lld][MachO] Fix indentation.Lang Hames2015-10-201-2/+2
| | | | llvm-svn: 250863
* Revert "Apply modernize-use-default to clang-tools-extra."David Blaikie2015-10-2010-13/+13
| | | | | | | | | Breaks the build in GCC 4.7.2 (see http://lab.llvm.org:8011/builders/perf-x86_64-penryn-O3 for example) This reverts commit r250824. llvm-svn: 250862
* [lld][MachO] Fix typo in comment.Lang Hames2015-10-201-1/+1
| | | | llvm-svn: 250861
* [MemorySanitizer] NFC. Do not use GET_INTRINSIC_MODREF_BEHAVIOR table.Igor Laevsky2015-10-201-28/+3
| | | | | | | | | It is now possible to infer intrinsic modref behaviour purely from intrinsic attributes. This change will allow to completely remove GET_INTRINSIC_MODREF_BEHAVIOR table. Differential Revision: http://reviews.llvm.org/D13907 llvm-svn: 250860
* Use six to portably assign metaclasses in Python 2 and 3.Zachary Turner2015-10-202-6/+7
| | | | llvm-svn: 250859
* Introduce a mechanism for reusing Python modules out of tree.Zachary Turner2015-10-204-0/+41
| | | | | | | | | | | | | | | | | | Right now our Python code does not all share a common root. Tests and scripts both contain python code that cannot take advantage of reusability since they are unrelated siblings of each other. In particular, this presents a problem for wanting to use third party packages from both sides, since it does not make sense to copy the module into both places. This patch solves this by introducing a script lldb_shared.py which is a very lightweight script that just searches up the tree until it finds a root, and then imports a module from there. That module knows how to find all of the shared code that LLDB uses, and adjusts sys.path accordingly to make them all visible. llvm-svn: 250858
* Add `six` Python module to lldb/third_party.Zachary Turner2015-10-202-0/+886
| | | | | | | | | | | | | | Six is a python module designed to smooth the process of porting Python 2 code to Python 3. Specifically, six provides a consistent interface to some of the breaking changes between 2 and 3. For example, the syntax for assigning a metaclass differs in Python 2 and 3. Six addresses this by providing a single class decorator that will do the right thing depending on which version of Python is being run. There are other examples too, such as dealing with renamed modules, unicode literals, etc. llvm-svn: 250857
* Re-land r250592 without rejecting field refs in unevaluated contextsReid Kleckner2015-10-202-3/+77
| | | | | | | | | | | This time, I went with the first approach from http://reviews.llvm.org/D6700, where clang actually attempts to form an implicit member reference from an UnresolvedLookupExpr. We know that there are only two possible outcomes at this point, a DeclRefExpr of the FieldDecl or an error, but its safer to reuse the existing machinery for this. llvm-svn: 250856
* [ELF2] Extract calculation of symbol binding as a separate function.Igor Kudrin2015-10-202-8/+14
| | | | | | Differential Revision: http://reviews.llvm.org/D13910 llvm-svn: 250855
* [-fms-extensions] Allow missing exception specifications in redeclarations ↵David Majnemer2015-10-203-7/+22
| | | | | | | | | | | as an extension Microsoft's ATL headers make use of this MSVC extension, add support for it and issue a diagnostic under -Wmicrosoft-exception-spec. This fixes PR25265. llvm-svn: 250854
* [X86][SSE] Add 256-bit vector bit rotation tests.Simon Pilgrim2015-10-201-0/+1200
| | | | llvm-svn: 250853
* bugpoint: Remove implicit ilist iterator conversions, NFCDuncan P. N. Exon Smith2015-10-203-56/+47
| | | | | | | | This is the last of the implicit ilist iterator conversions in LLVM. Still up for debate whether we let these bitrot back: http://lists.llvm.org/pipermail/llvm-dev/2015-October/091617.html llvm-svn: 250852
* [Hexagon] Capture aggregate variables by reference, not valueKrzysztof Parzyszek2015-10-201-1/+1
| | | | llvm-svn: 250851
* [Hexagon] Do not fall-through if there is no CFG edgeKrzysztof Parzyszek2015-10-201-1/+1
| | | | llvm-svn: 250850
* [Hexagon] Use symbolic name for subregister instead of hardcoded numberKrzysztof Parzyszek2015-10-201-1/+1
| | | | llvm-svn: 250849
* [Hexagon] Change Based->Base in getBasedWithImmOffsetKrzysztof Parzyszek2015-10-202-3/+3
| | | | llvm-svn: 250848
* Removed zeroing th.th_task_state for master thread at start of nested parallel.Jonathan Peyton2015-10-201-9/+7
| | | | | | | | | | | The th.th_task_state for the master thread at the start of a nested parallel should not be zeroed in __kmp_allocate_team() because it is later put in the stack of states in __kmp_fork_call() for further re-use after exiting the nested region. It is zeroed after being put in the stack. Differential Revision: http://reviews.llvm.org/D13702 llvm-svn: 250847
* Removed '@' from delimiters, added it as offset designator.Jonathan Peyton2015-10-202-24/+77
| | | | | | | | | | | | Moved '@' from delimiters to offset designators for the KMP_PLACE_THREADS environment variable. Only one of: postfix "o" or prefix @, should be used in the value of KMP_PLACE_THREADS. For example, '2s@2,4c@2,1t'. This is also the format of KMP_SETTINGS=1 output now (removed "o" from there). e.g., 2s,2o,4c,2o,1t. Differential Revision: http://reviews.llvm.org/D13701 llvm-svn: 250846
* [Hexagon] Remove the remnants of isConstExtProfitableKrzysztof Parzyszek2015-10-207-125/+27
| | | | llvm-svn: 250845
* Add back null check removed accidentally in r250554Reid Kleckner2015-10-202-0/+5
| | | | | | Fixes PR25262 llvm-svn: 250844
* unittests: Remove implicit ilist iterator conversions, NFCDuncan P. N. Exon Smith2015-10-2010-53/+52
| | | | llvm-svn: 250843
* llvm-diff: Remove implicit ilist iterator conversions, NFCDuncan P. N. Exon Smith2015-10-201-2/+2
| | | | llvm-svn: 250842
* [CMake] All the checks for if LLVM_VERSION_* variables are set need to be ↵Chris Bieneman2015-10-201-3/+3
| | | | | | | | if(DEFINED ...) This is because if you set one of the variables to 0, if(NOT ...) is true, which isn't what you actually want. Should have thought that through better the first time. llvm-svn: 250841
* [CMake] Make clang/tools subdirectories controlled via optionsChris Bieneman2015-10-202-10/+16
| | | | | | Setting CLANG_TOOL_*_BUILD=Off on the CMake command line will disable inclusion of a clang/tools subdirectory. llvm-svn: 250840
* Look through using decls when classifying implicit member accessReid Kleckner2015-10-202-4/+17
| | | | | | | | | | | | | | | | | | | | | Clang will now accept this valid C++11 code: struct A { int field; }; struct B : A { using A::field; enum { TheSize = sizeof(field) }; }; Previously we would classify the 'field' reference as something other than a field, and then forget to apply the C++11 rule to allow non-static data member references in unevaluated contexts. This usually arises in class templates that want to reference fields of a dependent base in an unevaluated context outside of an instance method. Such contexts do not allow references to 'this', so the only way to access the field is with a using decl and an implicit member reference. llvm-svn: 250839
* Fix potential file i/o problem with python handles.Zachary Turner2015-10-204-37/+50
| | | | llvm-svn: 250838
* Disabling speculative loads under asan.Ivan Krasin2015-10-201-0/+50
| | | | | | | | | | | | | | | | | | Summary: While instrumenting std::string with asan I discovered that speculative load might load data from poisoned region. Disabling all speculative loads for asan-annotated functions. The test follows the std::string implementation. Corresponding CL in llvm: http://reviews.llvm.org/D13264 Patch by Mike Aizatsky, the review page for the CL is http://reviews.llvm.org/D13265 Reviewers: aizatsky Subscribers: kcc, llvm-commits Differential Revision: http://reviews.llvm.org/D13905 llvm-svn: 250837
* [ELF2] .shstrtab section implementedGeorge Rimar2015-10-2014-81/+167
| | | | | | | | The section header table index of the entry that is associated with the section name string table. Differential Revision: http://reviews.llvm.org/D13904 llvm-svn: 250836
* [CMake] Refactor subdirectory inclusion code to take a project name.Chris Bieneman2015-10-201-23/+34
| | | | | | | | | | | | | | | Summary: This refactoring makes some of the code used to control including subdirectories parameterized so it can be re-used elsewhere. Specifically I want to re-use this code in clang to be able to turn off specific tool subdirectories. Reviewers: chapuni, filcab, bogner, Bigcheese Subscribers: emaste, llvm-commits Differential Revision: http://reviews.llvm.org/D13783 llvm-svn: 250835
* [CMake] Make external compiler-rt install scripts relative to ↵Chris Bieneman2015-10-201-2/+2
| | | | | | | | | | | | | | CMAKE_INSTALL_PREFIX. This change makes LLVM_BUILD_EXTERNAL_COMPILER_RT work correctly when overriding CMAKE_INSTALL_PREFIX on the install action (which is how LLVM_CREATE_XCODE_TOOLCHAIN works). This fix is two parts: (1) Pass CMAKE_INSTALL_PREFIX in as a variable from the parent install to the child install (2) When passing COMPILER_RT_INSTALL_PATH into the external project make sure it is passed as a string not a path. Not specifying the full path for COMPILER_RT_INSTALL_PATH isn't enough to fix the issue because relative paths specified on the CMake command line are expanded relative to the working directory before the cache is populated. Forcing this to a string allows it to remain a relative path through to the install() calls. Relative paths specified in install() calls are expanded relative to CMAKE_INSTALL_PREFIX at install time. llvm-svn: 250834
* Fix MSVC build after 250820Tamas Berghammer2015-10-201-0/+8
| | | | | | | | Work around a bug in MSVC 12 where _HAS_EXCEPTIONS=0 don't eliminate all usage of __uncaught_exception with including eh.h what declares that function. llvm-svn: 250833
* Revert "Make dwarf parsing multi-threaded"Tamas Berghammer2015-10-203-71/+23
| | | | | | | | | Revert it bacuse it introduces several race condition detected by the build bots. This reverts commit 5107a5ebdb7c4571a30a7098b40bf8098b678447. llvm-svn: 250832
* [AST] Put TypeLocs and NestedNameSpecifierLocs into the ParentMap.Benjamin Kramer2015-10-209-36/+147
| | | | | | | | | | | | | | | | Firstly this changes the type of parent map to be keyed on DynTypedNode to simplify the following changes. This comes with a DenseMapInfo for DynTypedNode, which is a bit incomplete still and will probably only work for parentmap right now. Then the RecursiveASTVisitor in ASTContext is updated and finally ASTMatchers hasParent and hasAncestor learn about the new functionality. Now ParentMap is only missing TemplateArgumentLocs and CXXCtorInitializers. Differential Revision: http://reviews.llvm.org/D13897 llvm-svn: 250831
* Two switch blocks in VectorLegalizer::LegalizeOp already have aArtyom Skrobov2015-10-201-0/+1
| | | | | | | | | | default: llvm_unreachable("This action is not supported yet!"); -- so I'm adding one to the third switch block, too. This is a follow-up fix for http://reviews.llvm.org/D13862 llvm-svn: 250830
* [SystemZ] Use LivePhysRegs helper class in SystemZShortenInst.cpp.Jonas Paulsson2015-10-201-80/+35
| | | | | | | | | Don't use home brewed liveness tracking code for phys regs, since this class does the job. Reviewed by Ulrich Weigand. llvm-svn: 250829
* [SystemZ] Comment fix in test/CodeGen/SystemZ/fp-cmp-05.llJonas Paulsson2015-10-201-3/+1
| | | | llvm-svn: 250828
* Roll-back r250822.Angel Garcia Gomez2015-10-20150-222/+232
| | | | | | | | | | Summary: It breaks the build for the ASTMatchers Subscribers: klimek, cfe-commits Differential Revision: http://reviews.llvm.org/D13893 llvm-svn: 250827
* Adding support for TargetLoweringBase::LibCallArtyom Skrobov2015-10-204-254/+279
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: TargetLoweringBase::Expand is defined as "Try to expand this to other ops, otherwise use a libcall." For ISD::UDIV and ISD::SDIV, the choice between the two possibilities was defined in a rather convoluted way: - if DIVREM is legal, expand to DIVREM - if DIVREM has a custom lowering, expand to DIVREM - if DIVREM libcall is defined and a remainder from the same division is computed elsewhere, expand to a DIVREM libcall - else, expand to a DIV libcall This had the undesirable effect that if both DIV and DIVREM are implemented as libcalls, then ISD::UDIV and ISD::SDIV are expanded to the heavier DIVREM libcall, even when the remainder isn't used. The new code adds a new LegalizeAction, TargetLoweringBase::LibCall, so that backends can directly control whether they prefer an expansion or a conversion to a libcall. This makes the generic lowering code even more generic, allowing its reuse in a wider range of target-specific configurations. The useful effect is that ARM backend will now generate a call to __aeabi_{i,u}div rather than __aeabi_{i,u}divmod in cases where it doesn't need the remainder. There's no functional change outside the ARM backend. Reviewers: t.p.northover, rengolin Subscribers: t.p.northover, llvm-commits, aemerson Differential Revision: http://reviews.llvm.org/D13862 llvm-svn: 250826
* Combining DIV+REM->DIVREM doesn't belong in LegalizeDAG; move it over into ↵Artyom Skrobov2015-10-203-67/+99
| | | | | | | | | | | | | | | | | | | | | | | | DAGCombiner. Summary: In addition to moving the code over, this patch amends the DIV,REM -> DIVREM combining to run on all affected nodes at once: if the nodes are converted to DIVREM one at a time, then the resulting DIVREM may get legalized by the backend into something target-specific that we won't be able to recognize and correlate with the remaining nodes. The motivation is to "prepare terrain" for D13862: when we set DIV and REM to be legalized to libcalls, instead of the DIVREM, we otherwise lose the ability to combine them together. To prevent this, we need to take the DIV,REM -> DIVREM combining out of the lowering stage. Reviewers: RKSimon, eli.friedman, rengolin Subscribers: john.brawn, rengolin, llvm-commits Differential Revision: http://reviews.llvm.org/D13733 llvm-svn: 250825
* Apply modernize-use-default to clang-tools-extra.Angel Garcia Gomez2015-10-2010-13/+13
| | | | | | | | | | | | Summary: Replace empty bodies of default constructors and destructors with '= default'. Reviewers: klimek Subscribers: alexfh, cfe-commits Differential Revision: http://reviews.llvm.org/D13889 llvm-svn: 250824
* Apply modernize-use-default to compiler-rt.Angel Garcia Gomez2015-10-208-15/+11
| | | | | | | | | | | | Summary: Replace empty bodies of default constructors and destructors with '= default'. Reviewers: klimek, bkramer Subscribers: alexfh, cfe-commits Differential Revision: http://reviews.llvm.org/D13892 llvm-svn: 250823
* Apply modernize-use-default to clang.Angel Garcia Gomez2015-10-20150-232/+222
| | | | | | | | | | | | Summary: Replace empty bodies of default constructors and destructors with '= default'. Reviewers: bkramer, klimek Subscribers: klimek, alexfh, cfe-commits Differential Revision: http://reviews.llvm.org/D13890 llvm-svn: 250822
* Make dwarf parsing multi-threadedTamas Berghammer2015-10-203-23/+71
| | | | | | | | | | | | Loading the debug info from a large application is the slowest task LLDB do. This CL makes most of the dwarf parsing code multi-threaded. As a result the speed of "attach; backtrace; exit;" when the inferior is an LLDB with full debug info increased by a factor of 2 (on my machine). Differential revision: http://reviews.llvm.org/D13662 llvm-svn: 250821
* Add a new task pool class to LLDBTamas Berghammer2015-10-206-0/+359
| | | | | | | | | | | | | | | | | | | | | | The purpose of the class is to make it easy to execute tasks in parallel Basic design goals: * Have a very lightweight and easy to use interface where a list of lambdas can be executed in parallel * Use a global thread pool to limit the number of threads used (std::async don't do it on Linux) and to eliminate the thread creation overhead * Destroy the thread currently not in use to avoid the confusion caused by them during debugging LLDB Possible future improvements: * Possibility to cancel already added, but not yet started tasks * Parallel for_each implementation * Optimizations in the thread creation destroyation code Differential revision: http://reviews.llvm.org/D13727 llvm-svn: 250820
* AVX512: Implemented encoding and intrinsics for VPBROADCASTB/W/D/Q instructions.Igor Breger2015-10-2012-121/+1272
| | | | | | Differential Revision: http://reviews.llvm.org/D13884 llvm-svn: 250819
OpenPOWER on IntegriCloud