| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 209420
|
|
|
|
|
|
|
| |
Based on a patch by jfcaron3@gmail.com!
PR19806
llvm-svn: 209216
|
|
|
|
|
|
|
| |
Removes old 4096 byte workaround. This functionality has been available since
Windows XP.
llvm-svn: 209137
|
|
|
|
|
|
| |
versions are not used by lldb, lld, or clang.
llvm-svn: 209103
|
|
|
|
|
|
|
|
| |
llvm::sys::path.
http://reviews.llvm.org/D3687
llvm-svn: 208980
|
|
|
|
|
|
|
| |
Fix error handling introduced in r127426 that could result in MemoryBuffers not
having null termination.
llvm-svn: 208396
|
|
|
|
|
|
| |
These were made redundant back in r186560.
llvm-svn: 208395
|
|
|
|
|
|
| |
This can happen in practice with the user changing files and we can recover from it.
llvm-svn: 208143
|
|
|
|
|
|
| |
which GCC detects and Clang does not!
llvm-svn: 208033
|
|
|
|
| |
llvm-svn: 208030
|
|
|
|
|
|
| |
about the use case for the new parameter.
llvm-svn: 208026
|
|
|
|
|
|
| |
type-erased reference to a callable object.
llvm-svn: 208025
|
|
|
|
|
|
|
|
|
| |
On x64, windows.h doesn't include intrin.h for intrinsics. It just
declares them in the global namespace and uses them, expecting the
compiler to lower it as a builtin. We basically need to do this in
clang, eventually.
llvm-svn: 208023
|
|
|
|
|
|
|
|
| |
make sure to zero-initialize the rest
of the buffer if we unexpectedly reach end-of-file while reading.
llvm-svn: 208021
|
|
|
|
|
|
|
|
| |
'IsVolatile' for the open file functions.
This provides a hint that the file may be changing often so mmap is avoided.
llvm-svn: 208007
|
|
|
|
|
|
|
|
|
|
| |
Tested that the right -target-cpu is set in the clang -cc1 command line
when running "clang -march=native -E -v - </dev/null" on both an FX-8150
and an FX-8350. Both are family 15h; the FX-8150 (Bulldozer processor)
reports a model number of 1, and the FX-8350 (Piledriver processor)
reports a model number of 2.
llvm-svn: 207973
|
|
|
|
|
|
| |
This is just bdver3 + AVX2 + BMI2.
llvm-svn: 207847
|
|
|
|
|
|
| |
necessary.
llvm-svn: 207593
|
|
|
|
| |
llvm-svn: 207559
|
|
|
|
|
|
|
|
|
|
|
|
| |
Change `BlockFrequency` to defer to `BranchProbability::scale()` and
`BranchProbability::scaleByInverse()`.
This removes `BlockFrequency::scale()` from its API (and drops the
ability to see the remainder), but the only user was the unit tests. If
some code in the future needs an API that exposes the remainder, we can
add something to `BranchProbability`, but I find that unlikely.
llvm-svn: 207550
|
|
|
|
| |
llvm-svn: 207545
|
|
|
|
|
|
|
| |
Add API to `BranchProbability` for scaling big integers. Next job is to
rip the logic out of `BlockMass` and `BlockFrequency`.
llvm-svn: 207544
|
|
|
|
| |
llvm-svn: 207394
|
|
|
|
|
|
| |
our own portability system to cope without snprintf.
llvm-svn: 207389
|
|
|
|
|
|
| |
Unix-like OSes.
llvm-svn: 207388
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
each line. This is particularly nice for tracking which run of
a particular pass over a particular function was slow.
This also required making the TimeValue string much more useful. First,
there is a standard format for writing out a date and time. Let's use
that rather than strings that would have to be parsed. Second, actually
output the nanosecond resolution that timevalue claims to have.
This is proving useful working on PR19499, so I figured it would be
generally useful to commit.
llvm-svn: 207385
|
|
|
|
|
|
| |
sys::path::filename() instead of std::string.
llvm-svn: 206990
|
|
|
|
|
|
| |
definition below all of the header #include lines, lib/Support edition.
llvm-svn: 206847
|
|
|
|
|
|
| |
and PPC, but not x86.
llvm-svn: 206830
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
behavior based on other files defining DEBUG_TYPE, which means it cannot
define DEBUG_TYPE at all. This is actually better IMO as it forces folks
to define relevant DEBUG_TYPEs for their files. However, it requires all
files that currently use DEBUG(...) to define a DEBUG_TYPE if they don't
already. I've updated all such files in LLVM and will do the same for
other upstream projects.
This still leaves one important change in how LLVM uses the DEBUG_TYPE
macro going forward: we need to only define the macro *after* header
files have been #include-ed. Previously, this wasn't possible because
Debug.h required the macro to be pre-defined. This commit removes that.
By defining DEBUG_TYPE after the includes two things are fixed:
- Header files that need to provide a DEBUG_TYPE for some inline code
can do so by defining the macro before their inline code and undef-ing
it afterward so the macro does not escape.
- We no longer have rampant ODR violations due to including headers with
different DEBUG_TYPE definitions. This may be mostly an academic
violation today, but with modules these types of violations are easy
to check for and potentially very relevant.
Where necessary to suppor headers with DEBUG_TYPE, I have moved the
definitions below the includes in this commit. I plan to move the rest
of the DEBUG_TYPE macros in LLVM in subsequent commits; this one is big
enough.
The comments in Debug.h, which were hilariously out of date already,
have been updated to reflect the recommended practice going forward.
llvm-svn: 206822
|
|
|
|
| |
llvm-svn: 206492
|
|
|
|
|
|
| |
instead of comparing to nullptr.
llvm-svn: 206252
|
|
|
|
| |
llvm-svn: 206197
|
|
|
|
|
|
|
| |
declaration. GCC 4.7 appears to get hopelessly confused by declaring
this function within a member function of a class template. Go figure.
llvm-svn: 206152
|
|
|
|
|
|
|
|
|
|
|
|
| |
abstract interface. The only user of this functionality is the JIT
memory manager and it is quite happy to have a custom type here. This
removes a virtual function call and a lot of unnecessary abstraction
from the common case where this is just a *very* thin vaneer around
a call to malloc.
Hopefully still no functionality changed here. =]
llvm-svn: 206149
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
slabs rather than embedding a singly linked list in the slabs
themselves. This has a few advantages:
- Better utilization of the slab's memory by not wasting 16-bytes at the
front.
- Simpler allocation strategy by not having a struct packed at the
front.
- Avoids paging every allocated slab in just to traverse them for
deallocating or dumping stats.
The latter is the really nice part. Folks have complained from time to
time bitterly that tearing down a BumpPtrAllocator, even if it doesn't
run any destructors, pages in all of the memory allocated. Now it won't.
=]
Also resolves a FIXME with the scaling of the slab sizes. The scaling
now disregards specially sized slabs for allocations larger than the
threshold.
llvm-svn: 206147
|
|
|
|
|
|
| |
While there make array_lengthof constexpr if we have support for it.
llvm-svn: 206112
|
|
|
|
|
|
|
| |
Introduce ScalarTraits::mustQuote which determines whether or not a
StringRef needs quoting before it is acceptable to output.
llvm-svn: 205955
|
|
|
|
| |
llvm-svn: 205953
|
|
|
|
|
|
|
|
|
| |
Don't quote octal compatible strings if they are only two wide, they
aren't ambiguous.
This reverts commit r205857 which reverted r205857.
llvm-svn: 205914
|
|
|
|
|
|
|
|
| |
This reverts commit r205839.
It broke several tests in lld.
llvm-svn: 205857
|
|
|
|
|
|
|
|
|
|
| |
YAMLIO would turn a BinaryRef into the string 0000000004000000.
However, the leading zero causes parsers to interpret it as being an
octal number instead of a hexadecimal one.
Instead, escape such strings as needed.
llvm-svn: 205839
|
|
|
|
|
|
| |
to reduce verbosity.
llvm-svn: 205829
|
|
|
|
| |
llvm-svn: 205697
|
|
|
|
|
|
| |
the lock was released.
llvm-svn: 205683
|
|
|
|
|
|
|
|
| |
MemoryBuffer
This is the other half of r205676.
llvm-svn: 205677
|
|
|
|
|
|
|
|
|
|
|
|
| |
MemoryBuffer
This avoids an extra copy during decompression and avoids the use of
MemoryBuffer which is a weirdly esoteric device that includes unrelated
concepts like "file name" (its rather generic name is a bit misleading).
Similar refactoring of zlib::compress coming up.
llvm-svn: 205676
|
|
|
|
|
|
|
|
|
| |
This generalises the object file type parsing to all Windows environments. This
is used by cygwin as well as MSVC environments for MCJIT. This also makes the
triple more similar to Chandler's suggestion of a separate field for the object
file format.
llvm-svn: 205219
|
|
|
|
|
|
|
|
|
|
| |
parameters rather than runtime parameters.
There is only one user of these parameters and they are compile time for
that user. Making these compile time seems to better reflect their
intended usage as well.
llvm-svn: 205143
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
That causes references to them to be weak references which can collapse
to null if no definition is provided. We call these functions
unconditionally, so a definition *must* be provided. Make the
definitions provided in the .cpp file weak by re-declaring them as weak
just prior to defining them. This should keep compilers which cannot
attach the weak attribute to the definition happy while actually
resolving the symbols correctly during the link.
You might ask yourself upon reading this commit log: how did *any* of
this work before? Well, fun story. It turns out we have some code in
Support (BumpPtrAllocator) which both uses virtual dispatch and has
out-of-line vtables used by that virtual dispatch. If you move the
virtual dispatch into its header in *just* the right way, the optimizer
gets to devirtualize, and remove all references to the vtable. Then the
sad part: the references to this one vtable were the only strong symbol
uses in the support library for llvm-tblgen AFAICT. At least, after
doing something just like this, these symbols stopped getting their weak
definition and random calls to them would segfault instead.
Yay software.
llvm-svn: 205137
|