| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
developers can see if their driver changed any cl::Option's. The
current implementation isn't perfect but handles most kinds of
options. This is nice to have when decomposing the stages of
compilation and moving between different drivers. It's also a good
sanity check when comparing results produced by different command line
invocations that are expected to produce the comparable results.
Note: This is not an attempt to prolong the life of cl::Option. On the
contrary, it's a placeholder for a feature that must exist when
cl::Option is replaced by a more appropriate framework. A new
framework needs: a central option registry, dynamic name lookup,
non-global containers of option values (e.g. per-module,
per-function), *and* the ability to print options values and their defaults at
any point during compilation.
llvm-svn: 128910
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Adds support for sniffing PE/COFF files on win32 (.exe and .dll)
which are COFF files that have an MS-DOS compatibility stub on
the front of them.
- Fixes a bug in the COFFObjectFile's support for the Microsoft COFF
extension for long symbol names, wherein it was attempting to parse
the leading '/' in an extended symbol name reference as part of the
integer offset.
- Fixes bugs in COFFObjectFile and ELFObjectFile wherein section
and symbol iterators were being returned with uninitialized bytes;
the type DataRefImpl is a union between 2 32-bit words (d.a and d.b)
and a single intptr_t word (p). Only p was being initialized, so in
32-bit builds the result would be iterators with random upper 32-bit
words in their DataRefImpls. This caused random failures when
seeking around in object files.
Patch by Graydon Hoare!
llvm-svn: 128799
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
StringMap was not properly updating NumTombstones after a clear or rehash.
This was not fatal until now because the table was growing faster than
NumTombstones could, but with the previous change of preventing infinite
growth of the table the invariant (NumItems + NumTombstones <= NumBuckets)
stopped being observed, causing infinite loops in certain situations.
Patch by José Fonseca!
llvm-svn: 128567
|
| |
|
|
|
|
|
|
| |
Rehash but don't grow when full of tombstones.
Patch by José Fonseca!
llvm-svn: 128566
|
| |
|
|
|
|
|
|
| |
Rehash but don't grow when full of tombstones.
Patch by José Fonseca!
llvm-svn: 128565
|
| |
|
|
|
|
|
|
|
| |
denormal multiplication.
Some platforms may treat denormals as zero, on other platforms multiplication
with a subnormal is slower than dividing by a normal.
llvm-svn: 128555
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
The idea is, that if an ieee 754 float is divided by a power of two, we can
turn the division into a cheaper multiplication. This function sees if we can
get an exact multiplicative inverse for a divisor and returns it if possible.
This is the hard part of PR9587.
I tested many inputs against llvm-gcc's frotend implementation of this
optimization and didn't find any difference. However, floating point is the
land of weird edge cases, so any review would be appreciated.
llvm-svn: 128545
|
| |
|
|
|
|
| |
identical to the smul.with.overflow() code.
llvm-svn: 128379
|
| |
|
|
| |
llvm-svn: 128218
|
| |
|
|
| |
llvm-svn: 128199
|
| |
|
|
| |
llvm-svn: 128098
|
| |
|
|
|
|
| |
the buildbot failure earlier.
llvm-svn: 128071
|
| |
|
|
|
|
| |
investigate further why this works on my machine and not on others.
llvm-svn: 128065
|
| |
|
|
|
|
| |
running while crash recovery cleanups are being processed.
llvm-svn: 128008
|
| |
|
|
|
|
|
| |
- glibc falls back to fork+exec if a file actions object is present.
- On BSDs this saves a malloc.
llvm-svn: 127969
|
| |
|
|
|
|
| |
select between 'delete' and 'destructor' cleanups, and allow the destructor of CrashRecoveryContextCleanupRegister to be pseudo re-entrant.
llvm-svn: 127929
|
| |
|
|
|
|
|
|
| |
'gCrsahRecoveryEnabled' is false. This avoids us needing to go to thread local storage for
the performance sensitive case where we are compiling code.
llvm-svn: 127928
|
| |
|
|
| |
llvm-svn: 127891
|
| |
|
|
|
|
|
| |
On MSVCRT and compatible, output of %e is incompatible to Posix by default. Number of exponent digits should be at least 2. "%+03d"
FIXME: Implement our formatter in future!
llvm-svn: 127872
|
| |
|
|
|
|
|
| |
makes valgrind stop complaining about uninitialized variables being read when it
accesses a bitfield (category) that shares its bits with these variables.
llvm-svn: 127871
|
| |
|
|
| |
llvm-svn: 127853
|
| |
|
|
|
|
| |
be used to release resources during a crash.
llvm-svn: 127849
|
| |
|
|
|
|
| |
instead of copying.
llvm-svn: 127835
|
| |
|
|
|
|
|
|
| |
bits that are known zero in the divided number.
This will come in handy soon.
llvm-svn: 127828
|
| |
|
|
|
|
|
|
| |
called at dtor context.
report_fatal_error() invokes exit(). We know report_fatal_error() might not write messages to stderr when any errors were detected on FD == 2.
llvm-svn: 127726
|
| |
|
|
|
| |
FIXME: It is a temporal hack. We should detect as many "special file name" as possible.
llvm-svn: 127724
|
| |
|
|
|
|
|
| |
for workaround.
FIXME: We should use sys::fs::unique_file() in future.
llvm-svn: 127723
|
| |
|
|
| |
llvm-svn: 127705
|
| |
|
|
| |
llvm-svn: 127426
|
| |
|
|
| |
llvm-svn: 127417
|
| |
|
|
| |
llvm-svn: 127416
|
| |
|
|
| |
llvm-svn: 127413
|
| |
|
|
|
|
| |
support for creating buffers that cover only a part of a file.
llvm-svn: 127409
|
| |
|
|
| |
llvm-svn: 127241
|
| |
|
|
| |
llvm-svn: 127140
|
| |
|
|
|
|
|
|
|
|
| |
inefficient file system buffering if the writes are not a multiple of the desired
buffer size. Avoid this by limiting the large write to a multiple of the buffer
size and copying the remainder into the buffer.
Thanks to Dan for pointing this out.
llvm-svn: 127026
|
| |
|
|
|
|
|
|
| |
directly instead of doing many buffer-sized writes.
This caps the number of write(2) calls per string to a maximum of 2.
llvm-svn: 127010
|
| |
|
|
| |
llvm-svn: 126558
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
approximation
of a constant had a minor typo introduced when copying it from the book, which
caused it to favor negative approximations over positive approximations in many
cases. Positive approximations require fewer operations beyond the multiplication.
In the case of division by 3, we still generate code that is a single instruction
larger than GCC's code.
llvm-svn: 126097
|
| |
|
|
| |
llvm-svn: 125986
|
| |
|
|
| |
llvm-svn: 125943
|
| |
|
|
| |
llvm-svn: 125804
|
| |
|
|
|
|
|
| |
Add getAllOnesValue of FP numbers to Constants and APFloat.
Add more tests.
llvm-svn: 125776
|
| |
|
|
|
|
| |
No one uses *-mingw64. mingw-w64 is represented as {i686|x86_64}-w64-mingw32. In llvm side, i686 and x64 can be treated as similar way.
llvm-svn: 125747
|
| |
|
|
| |
llvm-svn: 125574
|
| |
|
|
|
|
| |
on the host OS. Reviewed by dgregor.
llvm-svn: 125406
|
| |
|
|
|
|
| |
I have another way to achieve the same goal.
llvm-svn: 125239
|
| |
|
|
| |
llvm-svn: 125236
|
| |
|
|
|
|
|
|
|
|
| |
name of a path, after resolving symbolic links and eliminating excess
path elements such as "foo/../" and "./".
This routine still needs a Windows implementation, but I don't have a
Windows machine available. Help? Please?
llvm-svn: 125228
|
| |
|
|
|
|
|
|
|
|
| |
config.h.*.
AC_CHECK_FUNCS seeks a symbol only in libs. We should check the declaration in string.h.
FIXME: I have never seen mingw(s) have strerror_s() (not _strerror_s()).
FIXME: Autoconf/CMake may seek strerror_s() with the definition MINGW_HAS_SECURE_API in future.
llvm-svn: 125172
|