summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* This patch makes Clang-independent base classes for all the expression types ↵Jim Ingham2015-09-1573-1957/+3062
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | that lldb currently vends. Before we had: ClangFunction ClangUtilityFunction ClangUserExpression and code all over in lldb that explicitly made Clang-based expressions. This patch adds an Expression base class, and three pure virtual implementations for the Expression kinds: FunctionCaller UtilityFunction UserExpression You can request one of these expression types from the Target using the Get<ExpressionType>ForLanguage. The Target will then consult all the registered TypeSystem plugins, and if the type system that matches the language can make an expression of that kind, it will do so and return it. Because all of the real expression types need to communicate with their ExpressionParser in a uniform way, I also added a ExpressionTypeSystemHelper class that expressions generically can vend, and a ClangExpressionHelper that encapsulates the operations that the ClangExpressionParser needs to perform on the ClangExpression types. Then each of the Clang* expression kinds constructs the appropriate helper to do what it needs. The patch also fixes a wart in the UtilityFunction that to use it you had to create a parallel FunctionCaller to actually call the function made by the UtilityFunction. Now the UtilityFunction can be asked to vend a FunctionCaller that will run its function. This cleaned up a lot of boiler plate code using UtilityFunctions. Note, in this patch all the expression types explicitly depend on the LLVM JIT and IR, and all the common JIT running code is in the FunctionCaller etc base classes. At some point we could also abstract that dependency but I don't see us adding another back end in the near term, so I'll leave that exercise till it is actually necessary. llvm-svn: 247720
* test: Add "REQUIRES: native" so this test passes with no default triple ↵Justin Bogner2015-09-151-0/+2
| | | | | | configured llvm-svn: 247719
* MS ABI: Don't allow dllexport/import on lambdasHans Wennborg2015-09-154-0/+30
| | | | | | | This is to follow up on David's comment in http://reviews.llvm.org/D12422#235509 llvm-svn: 247718
* Add test coverage for @encode(SEL); completely untested until now.Nico Weber2015-09-151-0/+3
| | | | llvm-svn: 247717
* Revert "Clean up: Refactoring the hardcoded value of 6 for ↵Larisse Voufo2015-09-154-27/+11
| | | | | | FindAvailableLoadedValue()'s parameter MaxInstsToScan." for preliminary community discussion (See. D12886) llvm-svn: 247716
* Allow static local variables specified on data-sharing attribute clauses.Kelvin Li2015-09-1548-99/+666
| | | | | | http://reviews.llvm.org/D11619 llvm-svn: 247715
* [modules] Make sure we make hidden UsingShadowDecls visible to redeclarationRichard Smith2015-09-154-1/+9
| | | | | | lookup for the UsingShadowDecls themselves. llvm-svn: 247714
* [ShrinkWrapping] Add a test case for r247710.Quentin Colombet2015-09-151-0/+30
| | | | llvm-svn: 247713
* Rebase tests after LLVM r247707.Nico Weber2015-09-153-4/+4
| | | | llvm-svn: 247712
* Introducing llvm.invariant.group.barrier intrinsicPiotr Padlewski2015-09-156-5/+230
| | | | | | | | | | | | | | For more info for what reason it was invented, goto: http://lists.llvm.org/pipermail/cfe-dev/2015-July/044227.html invariant.group.barrier: http://reviews.llvm.org/D12310 docs: http://reviews.llvm.org/D11399 CodeGenPrepare: http://reviews.llvm.org/D12875 llvm-svn: 247711
* [ShrinkWrapping] Fix an infinite loop while looking for restore point.Quentin Colombet2015-09-151-0/+8
| | | | | | | | | | | This may happen when the input program itself contains an infinite loop with no exit block. In that case, we would fail to find a block post-dominating the loop such that this block is outside of the loop. This fixes PR24823. Working on reducing the test case. llvm-svn: 247710
* Make the source-map help grammatical.Jim Ingham2015-09-151-1/+1
| | | | llvm-svn: 247709
* Broaden optimization of fcmp ([us]itofp x, constant) by instcombine.Arch D. Robison2015-09-152-50/+95
| | | | | | | | | | The patch extends the optimization to cases where the constant's magnitude is so small or large that the rounding of the conversion is irrelevant. The "so small" case includes negative zero. Differential review: http://reviews.llvm.org/D11210 llvm-svn: 247708
* [CorrelatedValuePropagation] Infer nonnull attributesIgor Laevsky2015-09-152-0/+70
| | | | | | | | | LazuValueInfo can prove that value is nonnull based on the context information. Make use of this ability to infer nonnull attributes for the call arguments. Differential Revision: http://reviews.llvm.org/D12836 llvm-svn: 247707
* [OPENMP] Emit an additional note during analysis of 'if' clause.Alexey Bataev2015-09-158-14/+20
| | | | | | Patch adds emission of additional note for 'if' clauses with name modifiers in case if 'if' clause without name modified was specified or 'if' clause with the same name modifier was specified. llvm-svn: 247706
* [NaryReassociate] Add support for Mul instructionsMarcello Maggioni2015-09-152-24/+95
| | | | | | | | | This patch extends the current pass by handling Mul instructions as well. Patch by: Volkan Keles (vkeles@apple.com) llvm-svn: 247705
* Suppress some warnings in the tests that snuck in. That 'tmpnam' is ↵Marshall Clow2015-09-152-1/+2
| | | | | | deprecated doesn't change the fact that we have to test it. llvm-svn: 247704
* Fix build after llvm r247683 was reverted.Daniel Sanders2015-09-151-1/+1
| | | | llvm-svn: 247703
* Revert r247692: Replace Triple with a new TargetTuple in MCTargetDesc/* and ↵Daniel Sanders2015-09-15114-1297/+506
| | | | | | | | related. NFC. Eric has replied and has demanded the patch be reverted. llvm-svn: 247702
* 80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; ↵Sanjay Patel2015-09-151-4/+5
| | | | | | NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC80-cols; NFC llvm-svn: 247700
* more space; NFCSanjay Patel2015-09-151-0/+1
| | | | llvm-svn: 247699
* [mips][microMIPS] Fix an issue with disassembling lwm32 instructionZoran Jovanovic2015-09-153-1/+5
| | | | | | | Fixed microMIPS disassembler crash on test case generated by llvm-mc-fuzzer. Differential Revision: http://reviews.llvm.org/D12881 llvm-svn: 247698
* [mips] Add support for branch-likely pseudo-instructionsZoran Jovanovic2015-09-158-25/+288
| | | | | | Differential Revision: http://reviews.llvm.org/D10537 llvm-svn: 247697
* Mention that libcxx is required to build Compiler-RT tests on OS X.Yury Gribov2015-09-151-0/+8
| | | | llvm-svn: 247696
* Change initialization of mbstate_t objects in tests from '= {0}' to '= {}', ↵Marshall Clow2015-09-1519-21/+21
| | | | | | which does the same thing, w/o having clang and gcc warn with -Wall. llvm-svn: 247695
* [SystemZ] Fix assertion failure in tryBuildVectorShuffleUlrich Weigand2015-09-152-1/+44
| | | | | | | | | | | Under certain circumstances, tryBuildVectorShuffle would attempt to create a BUILD_VECTOR node with an invalid combination of types. This happened when one of the components of the original BUILD_VECTOR was itself a TRUNCATE node. That TRUNCATE was stripped off during intermediate processing to simplify code, but when adding the node back to the result vector, we still need it to get the type right. llvm-svn: 247694
* Silencing a -Wreturn-type warning; NFC.Aaron Ballman2015-09-151-0/+1
| | | | llvm-svn: 247693
* Re-commit r247683: Replace Triple with a new TargetTuple in MCTargetDesc/* ↵Daniel Sanders2015-09-15114-506/+1297
| | | | | | | | | | | | | | | | | | | | | | | | | | | | and related. NFC. Summary: This is the first patch in the series to migrate Triple's (which are ambiguous) to TargetTuple's (which aren't). For the moment, TargetTuple simply passes all requests to the Triple object it holds. Once it has replaced Triple, it will start to implement the interface in a more suitable way. This change makes some changes to the public C++ API. In particular, InitMCSubtargetInfo(), createMCRelocationInfo(), and createMCSymbolizer() now take TargetTuples instead of Triples. The other public C++ API's have been left as-is for the moment to reduce patch size. This commit also contains a trivial patch to clang to account for the C++ API change. Thanks go to Pavel Labath for fixing LLDB for me. Reviewers: rengolin Subscribers: jyknight, dschuff, arsenm, rampitec, danalbert, srhines, javed.absar, dsanders, echristo, emaste, jholewinski, tberghammer, ted, jfb, llvm-commits, rengolin Differential Revision: http://reviews.llvm.org/D10969 llvm-svn: 247692
* Replace isa+cast with dyn_cast. NFC.Rafael Espindola2015-09-151-2/+3
| | | | llvm-svn: 247691
* Skip TestGoASTContext on remote targets as it it not remote compatibleTamas Berghammer2015-09-151-0/+1
| | | | llvm-svn: 247690
* Remove garbage. The issue was fixed in r246856.NAKAMURA Takumi2015-09-151-2/+0
| | | | llvm-svn: 247689
* Add support for R_X86_64_64.Rafael Espindola2015-09-152-5/+16
| | | | llvm-svn: 247688
* Fix build after llvm r247683Pavel Labath2015-09-151-1/+1
| | | | llvm-svn: 247687
* Revert r247684 - Replace Triple with a new TargetTuple ...Daniel Sanders2015-09-15114-1297/+506
| | | | | | LLDB needs to be updated in the same commit. llvm-svn: 247686
* Make this test a bit more robust in preparation to adding more cases.Rafael Espindola2015-09-151-10/+17
| | | | | | | | | | The first test (call) is now the only test to use .text, which makes it resistant to more tests being added. llvm-objdump -d already prints the addresses of symbols. We can use that in the tests. llvm-svn: 247685
* [sanitizer] Move CheckVMASize after flag initializationAdhemerval Zanella2015-09-154-7/+8
| | | | llvm-svn: 247684
* Replace Triple with a new TargetTuple in MCTargetDesc/* and related. NFC.Daniel Sanders2015-09-15114-506/+1297
| | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This is the first patch in the series to migrate Triple's (which are ambiguous) to TargetTuple's (which aren't). For the moment, TargetTuple simply passes all requests to the Triple object it holds. Once it has replaced Triple, it will start to implement the interface in a more suitable way. This change makes some changes to the public C++ API. In particular, InitMCSubtargetInfo(), createMCRelocationInfo(), and createMCSymbolizer() now take TargetTuples instead of Triples. The other public C++ API's have been left as-is for the moment to reduce patch size. This commit also contains a trivial patch to clang to account for the C++ API change. Reviewers: rengolin Subscribers: jyknight, dschuff, arsenm, rampitec, danalbert, srhines, javed.absar, dsanders, echristo, emaste, jholewinski, tberghammer, ted, jfb, llvm-commits, rengolin Differential Revision: http://reviews.llvm.org/D10969 llvm-svn: 247683
* [clang-tidy] Update check name in the comment. NFC.Alexander Kornienko2015-09-151-1/+1
| | | | llvm-svn: 247682
* [OPENMP] Emit __kmpc_cancel_barrier() and code for 'cancellation point' only ↵Alexey Bataev2015-09-1525-193/+505
| | | | | | | | | | | | | | if 'cancel' is found. Patch improves codegen for OpenMP constructs. If the OpenMP region does not have internal 'cancel' construct, a call to 'void __kmpc_barrier()' runtime function is generated for all implicit/explicit barriers. If the region has inner 'cancel' directive, then ``` if (__kmpc_cancel_barrier()) exit from outer construct; ``` code is generated. Also, the code for 'canellation point' directive is not generated if parent directive does not have 'cancel' directive. llvm-svn: 247681
* Use the same typedef style for all Elf_* types.Rafael Espindola2015-09-151-3/+3
| | | | llvm-svn: 247680
* Fix namespace indentation and missing blank lines before 'public:' in ↵Daniel Sanders2015-09-158-91/+103
| | | | | | | | | | *MCAsmInfo.h. NFC. This is to reduce noise in a following commit. Also fixes a couple missing spaces before the reference operator. llvm-svn: 247679
* Run clang-format to unify the switch statement style as suggest here: ↵Alexey Bader2015-09-155-201/+539
| | | | | | | | http://reviews.llvm.org/D12855#246073. NFC. llvm-svn: 247678
* [lldb-mi] Clean up CMICmdArgSet usage.Bruce Mitchener2015-09-1517-142/+141
| | | | | | | | | | | | | | | | | | | | | | | Summary: CMICmdArgSet stores a vector of non-const pointers to the arguments that it is validating. It owns them and is responsible for deleting them. We don't need to pass a const reference to the argument to CMICmdArgSet::Add and then take the address and const_cast it when we can just pass the argument pointer in directly. This lets us remove some noise at every call site for CMICmdArgSet::Add and then clean up a couple of bits inside CMICmdArgSet to remove const_casts. Reviewers: abidh, ki.stfu, domipheus Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D12878 llvm-svn: 247677
* [OpenCL] Add new types for OpenCL 2.0.Alexey Bader2015-09-1523-16/+477
| | | | | | | | Patch by Pedro Ferreira. Reviewers: pekka.jaaskelainen Differential Revision: http://reviews.llvm.org/D12855 llvm-svn: 247676
* Fix after renamed CMake cache entryMichael Kruse2015-09-151-2/+5
| | | | | | | LLVM_EXTERNAL_CLANG_BUILD was changed to LLVM_TOOL_CLANG_BUILD in r242059. llvm-svn: 247675
* [GlobalsAA] Disable globals-aa by defaultJames Molloy2015-09-151-1/+1
| | | | | | Several issues have been found with it - disabling in the meantime. llvm-svn: 247674
* [lldb-mi] Simplify CMICmnLLDBDebugSessionInfo::Shutdown.Bruce Mitchener2015-09-154-18/+5
| | | | | | | | | | | | | | | Summary: * SharedDataDestroy couldn't fail, so no need to return a status. * No need for status, so can remove error message. The error message wasn't displayed or used anywhere anyway. Reviewers: abidh, ki.stfu Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D12879 llvm-svn: 247673
* Add support for DW_OP_GNU_const_index to dwarf expressionTamas Berghammer2015-09-154-5/+48
| | | | | | | | DW_OP_GNU_const_index is a new opcode used when split dwarf is enabled Differential revision: http://reviews.llvm.org/D12849 llvm-svn: 247672
* Fix several issues arount dwo symbol file handlingTamas Berghammer2015-09-154-8/+30
| | | | | | Differential revision: http://reviews.llvm.org/D12804 llvm-svn: 247671
* [mips][microMIPS] Implement CACHEE and PREFE instructions for microMIPS32r6Zoran Jovanovic2015-09-155-1/+37
| | | | | | Differential Revision: http://reviews.llvm.org/D11632 llvm-svn: 247670
OpenPOWER on IntegriCloud