- Mar 10, 2014
-
-
Sebastian Pop authored
llvm-svn: 203492
-
Sebastian Pop authored
llvm-svn: 203486
-
- Mar 09, 2014
-
-
Chandler Carruth authored
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
-
Chandler Carruth authored
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
-
- Mar 08, 2014
-
-
Craig Topper authored
llvm-svn: 203345
-
Adam Nemet authored
Args is an output parameter of the function lexCommand but the reference operator was missed. llvm-svn: 203343
-
- Mar 07, 2014
-
-
Dmitri Gribenko authored
llvm-svn: 203246
-
Ahmed Charles authored
This changes the interface to be more explicit that ownership is being transferred. llvm-svn: 203223
-
- Mar 06, 2014
-
-
Saleem Abdulrasool authored
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
-
Rafael Espindola authored
llvm-svn: 203155
-
Rafael Espindola authored
Despite the name, n_type contains the type of the symbol, but also if it is extern or private extern. llvm-svn: 203154
-
Rafael Espindola authored
llvm-svn: 203152
-
Ahmed Charles authored
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
-
Chandler Carruth authored
consistent with every other sub-library header in LLVM. llvm-svn: 203065
-
Chandler Carruth authored
obviously coupled to the IR. llvm-svn: 203064
-
Chandler Carruth authored
already lives. llvm-svn: 203046
-
Rui Ueyama authored
llvm-svn: 203023
-
- Mar 05, 2014
-
-
Ahmed Charles authored
llvm-svn: 202957
-
- Mar 04, 2014
-
-
Rui Ueyama authored
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
-
Rui Ueyama authored
llvm-svn: 202875
-
NAKAMURA Takumi authored
llvm-svn: 202857
-
Chandler Carruth authored
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
-
Chandler Carruth authored
IR types. llvm-svn: 202827
-
Chandler Carruth authored
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
-
Chandler Carruth authored
abstracting between a CallInst and an InvokeInst, both of which are IR concepts. llvm-svn: 202816
-
Chandler Carruth authored
llvm-svn: 202811
-
Rui Ueyama authored
llvm-svn: 202787
-
Rui Ueyama authored
llvm-svn: 202786
-
Rui Ueyama authored
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
-
Rui Ueyama authored
No functionality change. llvm-svn: 202781
-
Rui Ueyama authored
llvm-svn: 202772
-
Rui Ueyama authored
This is a small cleanup before making a bit larger change to this function. llvm-svn: 202770
-
- Mar 03, 2014
-
-
Tom Stellard authored
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
-
Richard Osborne authored
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
-
- Mar 02, 2014
-
-
Craig Topper authored
llvm-svn: 202621
-
- Mar 01, 2014
-
-
Benjamin Kramer authored
No intended functionality change. llvm-svn: 202588
-
- Feb 28, 2014
-
-
Rafael Espindola authored
This centralizes the Makefile handling of -install_name and -rpath. It also moves the cmake build to using @rpath. The reason being that libclang needs it, and it works for everything else. A followup patch will move clang to using this and then there will be a single point to edit to support other systems. llvm-svn: 202499
-
Rui Ueyama authored
The current COFF unwind printer tries to print SEH handler function names, assuming that it can always find function names in string table. It crashes if file being read has no symbol table (i.e. executable). With this patch, llvm-objdump prints SEH handler's RVA if there's no symbol table entry for that RVA. llvm-svn: 202466
-
Rui Ueyama authored
llvm-svn: 202465
-
Rui Ueyama authored
llvm-svn: 202445
-