summaryrefslogtreecommitdiffstats
path: root/llvm/tools
Commit message (Collapse)AuthorAgeFilesLines
...
* llvm-readobj: Add test for COFF auxiliary symbols as used by C++/CLINico Rieck2014-03-171-1/+3
| | | | llvm-svn: 204023
* Support: Make error_category's constructor publicJustin Bogner2014-03-151-1/+1
| | | | | | | | Since our error_category is based on the std one, we should have the same visibility for the constructor. This also allows us to avoid using the _do_message implementation detail in our own categories. llvm-svn: 203998
* Object/COFF: change data type of SymbolNumber from int16 to uint16.Rui Ueyama2014-03-151-1/+3
| | | | | | | | | | | | Microsoft PE/COFF Spec clearly states that the field is of signed interger type. However, in reality, it's unsigned. If cl.exe needs to create a large number of sections for COMDAT sections, it will just create more than 32768 sections. Handling large section number as negative number is not correct. I think this is a spec bug. Differential Revision: http://llvm-reviews.chandlerc.com/D3088 llvm-svn: 203986
* Fix a bug introduced during the transition to PathV2.Rafael Espindola2014-03-141-1/+1
| | | | | | | | | sys::fs::createUniqueFile returns an absolute path, so MakeSharedObject does too and we don't need to add a './' prefix. Patch by Jon McLachlan. llvm-svn: 203931
* [C++11] Introduce SectionRef::relocations() to use range-based loopsAlexey Samsonov2014-03-145-67/+57
| | | | | | | | | | | | Reviewers: rafael Reviewed By: rafael CC: llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D3077 llvm-svn: 203927
* [yaml2obj][ELF] Use range-based for loops.Simon Atanasyan2014-03-141-4/+2
| | | | llvm-svn: 203900
* [yaml2obj][ELF] Refer to a section in the error message by its name notSimon Atanasyan2014-03-141-1/+1
| | | | | | index. llvm-svn: 203899
* [yaml2obj][ELF] Remove unused ELFState class field.Simon Atanasyan2014-03-141-7/+4
| | | | llvm-svn: 203898
* [yaml2obj][ELF] Assign name (.shstrtab) to the section holds sections names.Simon Atanasyan2014-03-141-0/+1
| | | | llvm-svn: 203897
* static link polly into toolsSebastian Pop2014-03-145-6/+46
| | | | llvm-svn: 203886
* [C++11] Use ObjectFile::sections() in commandline llvm toolsAlexey Samsonov2014-03-135-114/+111
| | | | llvm-svn: 203802
* Back out Profile library and dependent commitsJustin Bogner2014-03-124-266/+120
| | | | | | | | | Chandler voiced some concern with checking this in without some discussion first. Reverting for now. This reverts r203703, r203704, r203708, and 203709. llvm-svn: 203723
* Profile: Remove an inefficient and unnecessary API functionJustin Bogner2014-03-121-7/+7
| | | | | | | This was leftover from an approach I abandoned, but I forgot to update it before committing. llvm-svn: 203708
* llvm-profdata: Use the Profile library, implement show and generateJustin Bogner2014-03-124-120/+266
| | | | | | | | This replaces the llvm-profdata tool with a version that uses the recently introduced Profile library. The new tool has the ability to generate and summarize profdata files as well as merging them. llvm-svn: 203704
* Move duplicated code into a helper function (exposed through overload).Eli Bendersky2014-03-121-8/+1
| | | | | | | | | | | | | | | | | There's a bit of duplicated "magic" code in opt.cpp and Clang's CodeGen that computes the inliner threshold from opt level and size opt level. This patch moves the code to a function that lives alongside the inliner itself, providing a convenient overload to the inliner creation. A separate patch can be committed to Clang to use this once it's committed to LLVM. Standalone tools that use the inlining pass can also avoid duplicating this code and fearing it will go out of sync. Note: this patch also restructures the conditinal logic of the computation to be cleaner. llvm-svn: 203669
* Object: rename ARMV7 to ARMNTSaleem Abdulrasool2014-03-111-1/+1
| | | | | | | The official specifications state the name to be ARMNT (as per the Microsoft Portable Executable and Common Object Format Specification v8.3). llvm-svn: 203530
* fix polly buildbotSebastian Pop2014-03-101-1/+1
| | | | llvm-svn: 203492
* fix PR13550: add a cmake WITH_POLLY optionSebastian Pop2014-03-101-1/+6
| | | | llvm-svn: 203486
* [PM] Switch new pass manager from polymorphic_ptr to unique_ptr now thatChandler Carruth2014-03-091-5/+5
| | | | | | | it is available. Also make the move semantics sufficiently correct to tolerate move-only passes, as the PassManagers *are* move-only passes. llvm-svn: 203391
* [C++11] Add range based accessors for the Use-Def chain of a Value.Chandler Carruth2014-03-091-6/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This requires a number of steps. 1) Move value_use_iterator into the Value class as an implementation detail 2) Change it to actually be a *Use* iterator rather than a *User* iterator. 3) Add an adaptor which is a User iterator that always looks through the Use to the User. 4) Wrap these in Value::use_iterator and Value::user_iterator typedefs. 5) Add the range adaptors as Value::uses() and Value::users(). 6) Update *all* of the callers to correctly distinguish between whether they wanted a use_iterator (and to explicitly dig out the User when needed), or a user_iterator which makes the Use itself totally opaque. Because #6 requires churning essentially everything that walked the Use-Def chains, I went ahead and added all of the range adaptors and switched them to range-based loops where appropriate. Also because the renaming requires at least churning every line of code, it didn't make any sense to split these up into multiple commits -- all of which would touch all of the same lies of code. The result is still not quite optimal. The Value::use_iterator is a nice regular iterator, but Value::user_iterator is an iterator over User*s rather than over the User objects themselves. As a consequence, it fits a bit awkwardly into the range-based world and it has the weird extra-dereferencing 'operator->' that so many of our iterators have. I think this could be fixed by providing something which transforms a range of T&s into a range of T*s, but that *can* be separated into another patch, and it isn't yet 100% clear whether this is the right move. However, this change gets us most of the benefit and cleans up a substantial amount of code around Use and User. =] llvm-svn: 203364
* [C++11] Add 'override' keyword to virtual methods that override their base ↵Craig Topper2014-03-0821-194/+197
| | | | | | class. llvm-svn: 203345
* [bugpoint] Don't ignore arg in -compile-commad="tool arg"Adam Nemet2014-03-081-1/+1
| | | | | | | Args is an output parameter of the function lexCommand but the reference operator was missed. llvm-svn: 203343
* Add missing std:: qualifiersDmitri Gribenko2014-03-071-2/+2
| | | | llvm-svn: 203246
* Change MCDisassembler::setSymbolizer to take unique_ptr by value.Ahmed Charles2014-03-071-1/+1
| | | | | | | This changes the interface to be more explicit that ownership is being transferred. llvm-svn: 203223
* Support: split object format out of environmentSaleem Abdulrasool2014-03-062-3/+3
| | | | | | | | | | | This is a preliminary setup change to support a renaming of Windows target triples. Split the object file format information out of the environment into a separate entity. Unfortunately, file format was previously treated as an environment with an unknown OS. This is most obvious in the ARM subtarget where the handling for macho on an arbitrary platform switches to AAPCS rather than APCS (as per Apple's needs). llvm-svn: 203160
* Fix warning about mismatched signs in comparison.Rafael Espindola2014-03-061-1/+1
| | | | llvm-svn: 203155
* Fix the printing of n_type.Rafael Espindola2014-03-061-4/+7
| | | | | | | Despite the name, n_type contains the type of the symbol, but also if it is extern or private extern. llvm-svn: 203154
* Use the existing N_STAB from the MachO namespace.Rafael Espindola2014-03-061-5/+1
| | | | llvm-svn: 203152
* Replace OwningPtr<T> with std::unique_ptr<T>.Ahmed Charles2014-03-0636-168/+149
| | | | | | | | | | This compiles with no changes to clang/lld/lldb with MSVC and includes overloads to various functions which are used by those projects and llvm which have OwningPtr's as parameters. This should allow out of tree projects some time to move. There are also no changes to libs/Target, which should help out of tree targets have time to move, if necessary. llvm-svn: 203083
* [Layering] Sink Linker.h into a Linker subdirectory to make itChandler Carruth2014-03-063-3/+3
| | | | | | consistent with every other sub-library header in LLVM. llvm-svn: 203065
* [Layering] Move InstVisitor.h into the IR library as it is prettyChandler Carruth2014-03-061-1/+1
| | | | | | obviously coupled to the IR. llvm-svn: 203064
* [Layering] Move DebugInfo.h into the IR library where its implementationChandler Carruth2014-03-062-2/+2
| | | | | | already lives. llvm-svn: 203046
* Attempt to unbreak little-endian buildbots.Rui Ueyama2014-03-051-3/+6
| | | | llvm-svn: 203023
* [C++11] Replace OwningPtr::take() with OwningPtr::release().Ahmed Charles2014-03-0511-16/+16
| | | | llvm-svn: 202957
* llvm-objdump: Indent unwind info contents.Rui Ueyama2014-03-041-11/+11
| | | | | | | | | | | Unwind info contents were indented at the same level as function table contents. That's a bit confusing because the unwind info is pointed by function table. In other places we usually increment indentation depth by one when dereferncing a pointer. This patch also removes extraneous newlines between function tables. llvm-svn: 202879
* llvm-objdump: Fix typo in output.Rui Ueyama2014-03-041-1/+1
| | | | llvm-svn: 202875
* Remove out-of-date comment in llvm/tools/CMakeLists.txt.NAKAMURA Takumi2014-03-041-4/+0
| | | | llvm-svn: 202857
* [Modules] Move the PassNameParser to the IR library as it deals in theChandler Carruth2014-03-043-3/+3
| | | | | | | PassInfo structures of the legacy pass manager. Also give it the Legacy prefix as it is not a particularly widely used header. llvm-svn: 202839
* [Modules] Move CFG.h to the IR library as it defines graph traits overChandler Carruth2014-03-043-3/+3
| | | | | | IR types. llvm-svn: 202827
* [Modules] Move ValueMap to the IR library. While this class does notChandler Carruth2014-03-041-1/+1
| | | | | | | | | | | | 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. llvm-svn: 202824
* [Modules] Move CallSite into the IR library where it belogs. It isChandler Carruth2014-03-042-2/+2
| | | | | | | abstracting between a CallInst and an InvokeInst, both of which are IR concepts. llvm-svn: 202816
* [cleanup] Re-sort all the includes with utils/sort_includes.py.Chandler Carruth2014-03-045-5/+4
| | | | llvm-svn: 202811
* Fix typo.Rui Ueyama2014-03-041-3/+3
| | | | llvm-svn: 202787
* Use auto for readability.Rui Ueyama2014-03-041-5/+3
| | | | llvm-svn: 202786
* llvm-objdump: Print x64 unwind info in executable.Rui Ueyama2014-03-041-4/+33
| | | | | | | | | | | | | | | | | | The original code does not work correctly on executable files because the code is written in such a way that only object files are assumed to be given to llvm-objdump. Contents of RuntimeFunction are different between executables and objects. In executables, fields in RuntimeFunction have actual addresses to unwind info structures. On the other hand, in object files, the fields have zero value, but instead there are relocations pointing to the fields, so that Linker will fill them at link-time. So, when we are reading an object file, we need to use relocation info to find the location of unwind info. When executable, we should just look at the values in RuntimeFunction. llvm-svn: 202785
* llvm-objdump: Split printRuntimeFunction to two small functions.Rui Ueyama2014-03-041-39/+41
| | | | | | No functionality change. llvm-svn: 202781
* llvm-objdump: Split printCOFFUnwindInfo into small functions.Rui Ueyama2014-03-041-105/+123
| | | | llvm-svn: 202772
* llvm-objdump: Use range-based-for loop and fix format.Rui Ueyama2014-03-041-14/+18
| | | | | | This is a small cleanup before making a bit larger change to this function. llvm-svn: 202770
* Add patch level to llvm version in CMake and AutoconfTom Stellard2014-03-031-0/+2
| | | | | | | | | | The shared library generated by autoconf will now be called libLLVM-$(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_PATCH)$(VERSION_SUFFIX).so and a symlink named libLLVM-$(VERSION_MAJOR).$(VERSION_MINOR)$(VERSION_SUFFIX).so will also be created in the install directory. llvm-svn: 202720
* Don't emit a blank line when running llvm-config --system-libs.Richard Osborne2014-03-031-18/+20
| | | | | | | | | | | | | | | | | | | | | | | Summary: Previously llvm-config --system-libs would print something like: $ llvm-config --system-libs -lz -ltinfo -lrt -ldl -lm Now we don't emit blank line. Functionality is unchanged otherwise, in particular llvm-config --libs --system-libs still emits the LLVM libraries and the system libraries on different lines. Reviewers: chapuni Reviewed By: chapuni CC: llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D2901 llvm-svn: 202719
OpenPOWER on IntegriCloud