summaryrefslogtreecommitdiff
path: root/include
Commit message (Collapse)AuthorAge
* [C++11] Replace OwningPtr::take() with OwningPtr::release().Ahmed Charles2014-03-05
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202957 91177308-0d34-0410-b5e6-96231b3b80d8
* [C++11] Add 'override' keyword to virtual methods that override their base ↵Craig Topper2014-03-05
| | | | | | class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202953 91177308-0d34-0410-b5e6-96231b3b80d8
* [C++11] Add release() to OwningPtr.Ahmed Charles2014-03-05
| | | | | | | This will make the transition to unique_ptr easier by allowing more incremental changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202949 91177308-0d34-0410-b5e6-96231b3b80d8
* [C++11] Add 'override' keyword to virtual methods that override their base ↵Craig Topper2014-03-05
| | | | | | class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202946 91177308-0d34-0410-b5e6-96231b3b80d8
* [C++11] Add 'override' keyword to virtual methods that override their base ↵Craig Topper2014-03-05
| | | | | | class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202945 91177308-0d34-0410-b5e6-96231b3b80d8
* [C++11] Add 'override' keyword to IR library.Craig Topper2014-03-05
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202939 91177308-0d34-0410-b5e6-96231b3b80d8
* [C++11] Add 'override' keywords to tablegen code.Craig Topper2014-03-05
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202937 91177308-0d34-0410-b5e6-96231b3b80d8
* [C API] Implement LLVM{Get,Set}Alignment for AllocaInst.Peter Zotov2014-03-05
| | | | | | Patch by Manuel Jacob. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202936 91177308-0d34-0410-b5e6-96231b3b80d8
* Check for dynamic allocas and inline asm that clobbers sp before buildingHans Wennborg2014-03-05
| | | | | | | | | | | | | | | | | | | selection dag (PR19012) In X86SelectionDagInfo::EmitTargetCodeForMemcpy we check with MachineFrameInfo to make sure that ESI isn't used as a base pointer register before we choose to emit rep movs (which clobbers esi). The problem is that MachineFrameInfo wouldn't know about dynamic allocas or inline asm that clobbers the stack pointer until SelectionDAGBuilder has encountered them. This patch fixes the problem by checking for such things when building the FunctionLoweringInfo. Differential Revision: http://llvm-reviews.chandlerc.com/D2954 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202930 91177308-0d34-0410-b5e6-96231b3b80d8
* C API: Add functions to get or set a GlobalValue's DLLStorageClassReid Kleckner2014-03-05
| | | | | | Patch by Manuel Jacob! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202928 91177308-0d34-0410-b5e6-96231b3b80d8
* [C++11] Sink the iterator over a Value's users into the Value typeChandler Carruth2014-03-05
| | | | | | | | | | | | | | itself and teach it to convert between the non-const and const variants. De-templatetize its usage in APIs to just use the const variant which always works for those use cases. Also, rename its implementation to reflect that it is an iterator over *users* not over *uses*. This is a step toward providing both iterator and range support for walking the *uses* distinct from the *users*. In a subsequent patch this will get renamed to make it clear that this is an adaptor over the fundamental use iterator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202923 91177308-0d34-0410-b5e6-96231b3b80d8
* Partially roll back r202915.Rui Ueyama2014-03-05
| | | | | | | I did not intend to cast a pointer to ulittle32_t there because the return type is const void*. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202916 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix endianness bug.Rui Ueyama2014-03-05
| | | | | | | | Looks like llvm-readobj is the only customer of this code, and apparently there's no test to cover this function. I'll write it after finishing plumbing from llvm-objdump to there. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202915 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove dependence on std::function.Richard Smith2014-03-04
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202902 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support for arbitrary functors to CrashRecoveryContext.Richard Smith2014-03-04
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202895 91177308-0d34-0410-b5e6-96231b3b80d8
* APFloat: Add a move ctor and operator=Benjamin Kramer2014-03-04
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202883 91177308-0d34-0410-b5e6-96231b3b80d8
* [Modules] Move the LeakDetector header into the IR library where theChandler Carruth2014-03-04
| | | | | | | | | | | source file had already been moved. Also move the unittest into the IR unittest library. This may seem an odd thing to put in the IR library but we only really use this with instructions and it needs the LLVM context to work, so it is intrinsically tied to the IR library. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202842 91177308-0d34-0410-b5e6-96231b3b80d8
* [cleanup] Fix a typo in the path.Chandler Carruth2014-03-04
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202840 91177308-0d34-0410-b5e6-96231b3b80d8
* [Modules] Move the PassNameParser to the IR library as it deals in theChandler Carruth2014-03-04
| | | | | | | PassInfo structures of the legacy pass manager. Also give it the Legacy prefix as it is not a particularly widely used header. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202839 91177308-0d34-0410-b5e6-96231b3b80d8
* [Modules] Move the ConstantRange class into the IR library. This isChandler Carruth2014-03-04
| | | | | | | | | | a bit surprising, as the class is almost entirely abstracted away from any particular IR, however it encodes the comparsion predicates which mutate ranges as ICmp predicate codes. This is reasonable as they're used for both instructions and constants. Thus, it belongs in the IR library with instructions and constants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202838 91177308-0d34-0410-b5e6-96231b3b80d8
* [Modules] Stop including CFG.h from GenericDomTree.h. This used to beChandler Carruth2014-03-04
| | | | | | necessary, but is no longer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202836 91177308-0d34-0410-b5e6-96231b3b80d8
* [Modules] Move the PredIteratorCache into the IR library -- it isChandler Carruth2014-03-04
| | | | | | hardcoded to use IR BasicBlocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202835 91177308-0d34-0410-b5e6-96231b3b80d8
* [Modules] Move the NoFolder into the IR library as it createsChandler Carruth2014-03-04
| | | | | | instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202834 91177308-0d34-0410-b5e6-96231b3b80d8
* [Modules] Move the ConstantFolder into the IR library where it canChandler Carruth2014-03-04
| | | | | | reference the ConstantExpr implementation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202833 91177308-0d34-0410-b5e6-96231b3b80d8
* [Modules] Move the TargetFolder into the Analysis library. Historically,Chandler Carruth2014-03-04
| | | | | | | | | this would have been required because of the use of DataLayout, but that has moved into the IR proper. It is still required because this folder uses the constant folding in the analysis library (which uses the datalayout) as the more aggressive basis of its folder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202832 91177308-0d34-0410-b5e6-96231b3b80d8
* [Modules] Move CFG.h to the IR library as it defines graph traits overChandler Carruth2014-03-04
| | | | | | IR types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202827 91177308-0d34-0410-b5e6-96231b3b80d8
* [Modules] Delete DataFlow.h rather than move it to the IR library. NoChandler Carruth2014-03-04
| | | | | | one in the tree (or in Polly) is using this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202825 91177308-0d34-0410-b5e6-96231b3b80d8
* [Modules] Move ValueMap to the IR library. While this class does notChandler Carruth2014-03-04
| | | | | | | | | | | | directly care about the Value class (it is templated so that the key can be any arbitrary Value subclass), it is in fact concretely tied to the Value class through the ValueHandle's CallbackVH interface which relies on the key type being some Value subclass to establish the value handle chain. Ironically, the unittest is already in the right library. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202824 91177308-0d34-0410-b5e6-96231b3b80d8
* [Modules] Move ValueHandle into the IR library where Value itself lives.Chandler Carruth2014-03-04
| | | | | | | | | | | Move the test for this class into the IR unittests as well. This uncovers that ValueMap too is in the IR library. Ironically, the unittest for ValueMap is useless in the Support library (honestly, so was the ValueHandle test) and so it already lives in the IR unittests. Mmmm, tasty layering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202821 91177308-0d34-0410-b5e6-96231b3b80d8
* [Modules] Move the LLVM IR pattern match header into the IR library, itChandler Carruth2014-03-04
| | | | | | obviously is coupled to the IR. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202818 91177308-0d34-0410-b5e6-96231b3b80d8
* [Modules] Move CallSite into the IR library where it belogs. It isChandler Carruth2014-03-04
| | | | | | | abstracting between a CallInst and an InvokeInst, both of which are IR concepts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202816 91177308-0d34-0410-b5e6-96231b3b80d8
* [Modules] Move GetElementPtrTypeIterator into the IR library. As itsChandler Carruth2014-03-04
| | | | | | | | | name might indicate, it is an iterator over the types in an instruction in the IR.... You see where this is going. Another step of modularizing the support library. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202815 91177308-0d34-0410-b5e6-96231b3b80d8
* [Modules] Move InstIterator out of the Support library, where it had noChandler Carruth2014-03-04
| | | | | | | | | | | | | business. This header includes Function and BasicBlock and directly uses the interfaces of both classes. It has to do with the IR, it even has that in the name. =] Put it in the library it belongs to. This is one step toward making LLVM's Support library survive a C++ modules bootstrap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202814 91177308-0d34-0410-b5e6-96231b3b80d8
* [cleanup] Re-sort all the includes with utils/sort_includes.py.Chandler Carruth2014-03-04
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202811 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove unused typedefTimur Iskhodzhanov2014-03-04
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202808 91177308-0d34-0410-b5e6-96231b3b80d8
* [cleanup] Add a getOperandNo method to the Use class and implement itChandler Carruth2014-03-04
| | | | | | | | | | | out-of-line so that it can refer to the methods on User. As a consequence, this removes the need to define one template method if value_use_iterator in the extremely strange User.h header (!!!). This makse Use.h slightly less peculiar. The only remaining real peculiarity is the definition of Use::set in Value.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202805 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix gcc -Wunused-but-set-variable warning.Patrik Hagglund2014-03-04
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202800 91177308-0d34-0410-b5e6-96231b3b80d8
* [cleanup] Run clang-format over the Use code. It was *really*Chandler Carruth2014-03-04
| | | | | | | | | | inconsistent both with itself and with LLVM at large with formatting. The *s were on the wrong side, the indent was off, etc etc. This is much cleaner. Also, go clang-format laying out the array of tags in nice columns. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202799 91177308-0d34-0410-b5e6-96231b3b80d8
* [cleanup] Tidy up and modernize comments and the definition order forChandler Carruth2014-03-04
| | | | | | | | the Use class. More cleanups to come here. This class just needs some TLC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202798 91177308-0d34-0410-b5e6-96231b3b80d8
* PBQP/Graph.h: Prune @return in setNodeCosts, possibly copypasto. ↵NAKAMURA Takumi2014-03-04
| | | | | | [-Wdocumentation] git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202795 91177308-0d34-0410-b5e6-96231b3b80d8
* PBQP/Graph.h: s/os/OS/ in @param. [-Wdocumentation]NAKAMURA Takumi2014-03-04
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202794 91177308-0d34-0410-b5e6-96231b3b80d8
* [C+11] Add 'override' keyword to methods in the support library.Craig Topper2014-03-04
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202791 91177308-0d34-0410-b5e6-96231b3b80d8
* Add missing include.Benjamin Kramer2014-03-03
| | | | | | libstdc++ and libc++ pulled this in transitively so I didn't notice. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202753 91177308-0d34-0410-b5e6-96231b3b80d8
* Pass to emit DWARF path discriminators.Diego Novillo2014-03-03
| | | | | | | | | | | | | | | | DWARF discriminators are used to distinguish multiple control flow paths on the same source location. When this happens, instructions across basic block boundaries will share the same debug location. This pass detects this situation and creates a new lexical scope to one of the two instructions. This lexical scope is a child scope of the original and contains a new discriminator value. This discriminator is then picked up from MCObjectStreamer::EmitDwarfLocDirective to be written on the object file. This fixes http://llvm.org/bugs/show_bug.cgi?id=18270. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202752 91177308-0d34-0410-b5e6-96231b3b80d8
* [C++11] Use std::tie to simplify compare operators.Benjamin Kramer2014-03-03
| | | | | | No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202751 91177308-0d34-0410-b5e6-96231b3b80d8
* [C++11] Remove the completely unnecessary requirement on SetVector'sChandler Carruth2014-03-03
| | | | | | | | | | | | remove_if that its predicate is adaptable. We don't actually need this, we can write a generic adapter for any predicate. This lets us remove some very wrong std::function usages. We should never be using std::function for predicates to algorithms. This incurs an *indirect* call overhead for every evaluation of the predicate, and makes it very hard to inline through. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202742 91177308-0d34-0410-b5e6-96231b3b80d8
* Add DWARF discriminator support to DILexicalBlocks.Diego Novillo2014-03-03
| | | | | | This adds support for emitting discriminators from DILexicalBlocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202736 91177308-0d34-0410-b5e6-96231b3b80d8
* Re-apply r202551, which introduced new PBQP solver.Lang Hames2014-03-03
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202735 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert "[C++11] Replace LLVM atomics with std::atomic."Benjamin Kramer2014-03-03
| | | | | | | Breaks the MSVC build. DataStream.cpp(44): error C2552: 'llvm::Statistic::Value' : non-aggregates cannot be initialized with initializer list git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202731 91177308-0d34-0410-b5e6-96231b3b80d8
* [C++11] Replace LLVM atomics with std::atomic.Benjamin Kramer2014-03-03
| | | | | | | | | | | With C++11 we finally have a standardized way to specify atomic operations. Use them to replace the existing custom implemention. Sadly the translation is not entirely trivial as std::atomic allows more fine-grained control over the atomicity. I tried to preserve the old semantics as well as possible. Differential Revision: http://llvm-reviews.chandlerc.com/D2915 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202730 91177308-0d34-0410-b5e6-96231b3b80d8