| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
| |
llvm-svn: 204023
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Reviewers: rafael
Reviewed By: rafael
CC: llvm-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D3077
llvm-svn: 203927
|
| |
|
|
| |
llvm-svn: 203900
|
| |
|
|
|
|
| |
index.
llvm-svn: 203899
|
| |
|
|
| |
llvm-svn: 203898
|
| |
|
|
| |
llvm-svn: 203897
|
| |
|
|
| |
llvm-svn: 203886
|
| |
|
|
| |
llvm-svn: 203802
|
| |
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
This was leftover from an approach I abandoned, but I forgot to update
it before committing.
llvm-svn: 203708
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 203492
|
| |
|
|
| |
llvm-svn: 203486
|
| |
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
class.
llvm-svn: 203345
|
| |
|
|
|
|
|
| |
Args is an output parameter of the function lexCommand but the reference
operator was missed.
llvm-svn: 203343
|
| |
|
|
| |
llvm-svn: 203246
|
| |
|
|
|
|
|
| |
This changes the interface to be more explicit that ownership is being
transferred.
llvm-svn: 203223
|
| |
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 203155
|
| |
|
|
|
|
|
| |
Despite the name, n_type contains the type of the symbol, but also if it is
extern or private extern.
llvm-svn: 203154
|
| |
|
|
| |
llvm-svn: 203152
|
| |
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
consistent with every other sub-library header in LLVM.
llvm-svn: 203065
|
| |
|
|
|
|
| |
obviously coupled to the IR.
llvm-svn: 203064
|
| |
|
|
|
|
| |
already lives.
llvm-svn: 203046
|
| |
|
|
| |
llvm-svn: 203023
|
| |
|
|
| |
llvm-svn: 202957
|
| |
|
|
|
|
|
|
|
|
|
| |
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-svn: 202875
|
| |
|
|
| |
llvm-svn: 202857
|
| |
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
IR types.
llvm-svn: 202827
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
abstracting between a CallInst and an InvokeInst, both of which are IR
concepts.
llvm-svn: 202816
|
| |
|
|
| |
llvm-svn: 202811
|
| |
|
|
| |
llvm-svn: 202787
|
| |
|
|
| |
llvm-svn: 202786
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
No functionality change.
llvm-svn: 202781
|
| |
|
|
| |
llvm-svn: 202772
|
| |
|
|
|
|
| |
This is a small cleanup before making a bit larger change to this function.
llvm-svn: 202770
|
| |
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|