- Mar 14, 2014
-
-
Simon Atanasyan authored
llvm-svn: 203897
-
Sebastian Pop authored
llvm-svn: 203886
-
- Mar 13, 2014
-
-
Alexey Samsonov authored
llvm-svn: 203802
-
- Mar 12, 2014
-
-
Justin Bogner authored
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
-
Justin Bogner authored
This was leftover from an approach I abandoned, but I forgot to update it before committing. llvm-svn: 203708
-
Justin Bogner authored
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
-
Eli Bendersky authored
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
-
- Mar 11, 2014
-
-
Saleem Abdulrasool authored
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
-
- 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
-