| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
| |
llvm-svn: 159182
|
| |
|
|
| |
llvm-svn: 159180
|
| |
|
|
|
|
| |
type. No test case. Found by inspection.
llvm-svn: 159179
|
| |
|
|
| |
llvm-svn: 159178
|
| |
|
|
| |
llvm-svn: 159177
|
| |
|
|
|
|
| |
a bit more thorough. PR13196.
llvm-svn: 159176
|
| |
|
|
|
|
| |
perfectly ok to mark realloc as noalias
llvm-svn: 159175
|
| |
|
|
| |
llvm-svn: 159174
|
| |
|
|
|
|
| |
whole thing should be upgraded to use the MemoryBuiltin interface anyway..
llvm-svn: 159173
|
| |
|
|
|
|
| |
be built here.
llvm-svn: 159172
|
| |
|
|
| |
llvm-svn: 159171
|
| |
|
|
| |
llvm-svn: 159170
|
| |
|
|
|
|
| |
Revert r136662 which disables ARM byval.
llvm-svn: 159168
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This works around a quirk in the way that explicit template specializations are
handled in Clang. We generate an implicit declaration from the original
template which the explicit specialization is considered to redeclare. This
trips up the explicit delete logic.
This change only works around that strange representation. At some point it'd
be nice to remove those extra declarations to make the AST more accurately
reflect the C++ semantics.
Review by Doug Gregor.
llvm-svn: 159167
|
| |
|
|
|
|
|
|
|
|
| |
More condition codes are included when deciding whether to remove cmp after
a sub instruction. Specifically, we extend from GE|LT|GT|LE to
GE|LT|GT|LE|HS|LS|HI|LO|EQ|NE. If we have "sub a, b; cmp b, a; movhs", we
should be able to replace with "sub a, b; movls".
rdar: 11725965
llvm-svn: 159166
|
| |
|
|
| |
llvm-svn: 159165
|
| |
|
|
|
|
| |
struct and enum forward-declarations.
llvm-svn: 159164
|
| |
|
|
|
|
| |
allows one to write multiclasses that are polymorphic over both registers and non-register operands.
llvm-svn: 159162
|
| |
|
|
|
|
| |
references to values in these maps. PR13197.
llvm-svn: 159161
|
| |
|
|
|
|
|
|
| |
The implicit global allocation functions do not have valid source locations,
but we still want to treat them as being "system header" functions for the
purposes of how they affect program state.
llvm-svn: 159160
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
resulted in it being reverted. A test for that bug was added in r158950.
Original comment:
If an object (such as a std::string) with an appropriate c_str() member function
is passed to a variadic function in a position where a format string indicates
that c_str()'s return type is desired, provide a note suggesting that the user
may have intended to call the c_str() member.
Factor the non-POD-vararg checking out of DefaultVariadicArgumentPromotion and
move it to SemaChecking in order to facilitate this. Factor the call checking
out of function call checking and block call checking, and extend it to cover
constructor calls too.
Patch by Sam Panzer!
llvm-svn: 159159
|
| |
|
|
|
|
|
| |
the call correctly even in the case where it is an invoke. This
fixes rdar://11714057.
llvm-svn: 159157
|
| |
|
|
| |
llvm-svn: 159152
|
| |
|
|
| |
llvm-svn: 159151
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Verify that all paths from the entry block to a virtual register read
pass through a def. Enable this check even when MRI->isSSA() is false.
Verify that the live range of a virtual register is live out of all
predecessor blocks, even for PHI-values.
This requires that PHIElimination sometimes inserts IMPLICIT_DEF
instruction in predecessor blocks.
llvm-svn: 159150
|
| |
|
|
|
|
|
|
|
|
|
| |
Implicitly defined virtual registers can simply have the <undef> bit set
on all uses, and copies can be turned into implicit defs recursively.
Physical registers are a bit trickier. We handle the common case where a
physreg def is used by a nearby instruction in the same basic block. For
more complicated cases, just leave the IMPLICIT_DEF instruction in.
llvm-svn: 159149
|
| |
|
|
|
|
|
| |
for non-type template parameters in microsoft mode.
PR12709.
llvm-svn: 159147
|
| |
|
|
|
|
|
|
| |
- simplifycfg: invoke undef/null -> unreachable
- instcombine: invoke new -> invoke expect(0, 0) (an arbitrary NOOP intrinsic; only done if the allocated memory is unused, of course)
- verifier: allow invoke of intrinsics (to make the previous step work)
llvm-svn: 159146
|
| |
|
|
| |
llvm-svn: 159145
|
| |
|
|
| |
llvm-svn: 159144
|
| |
|
|
| |
llvm-svn: 159143
|
| |
|
|
| |
llvm-svn: 159142
|
| |
|
|
| |
llvm-svn: 159141
|
| |
|
|
| |
llvm-svn: 159140
|
| |
|
|
| |
llvm-svn: 159139
|
| |
|
|
|
|
|
|
|
| |
Fix 'sys::IdentifyFileType' to work with big and little endian byte orderings
when reading the ELF object file type.
Initial patch by Stefan Hepp.
llvm-svn: 159138
|
| |
|
|
| |
llvm-svn: 159137
|
| |
|
|
|
|
|
|
| |
hidden. Being linkonce_odr guarantees that it is available in every dso that
needs it. Being a constant/function with unnamed_addr guarantees that the
copies don't have to be merged.
llvm-svn: 159136
|
| |
|
|
|
|
| |
all these tests do not require instrumentation and work directly with asan rt
llvm-svn: 159135
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add the initial support for building ASan tests.
The first change here is to try to get the CFLAGS to more closely match
those used by the old Makefile. There are probably still goofs here,
ASan folks, your review would be appreciated.
The second big change is to add support for building both
instrumentation based an non-instrumentation based unittests for ASan.
They are built a bit differently from how the old makefiles managed
things. Specifically, there are two binaries, one for the
non-instrumented case, and one for the instrumented case.
Also, the instrumented unit tests rely on the host compiler supporting
AddressSanitizer's intrumentation pass. This is kind-of gross, but
I don't know of a better way yet. I've mailed llvmdev to discuss this
issue.
One big caveat is that the detection logic currently doesn't work. I've
commented it out temporarily as I'd like to get feedback from the ASan
developers, etc.
llvm-svn: 159134
|
| |
|
|
|
|
| |
longer represents what the function does. Therefore, the function is removed and its functionality is folded into the only place in the code-base where it was being used.
llvm-svn: 159133
|
| |
|
|
|
|
| |
interceptors
llvm-svn: 159132
|
| |
|
|
| |
llvm-svn: 159130
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ASan, and friends.
This explicitly switches the CompilerRT CMake build to require CMake
version 2.8.8 or newer which provides first-class support for "object"
libraries which consist of a pile of '.o' files -- exactly what is
desired for composing runtime libraries. I've gone ahead and switched to
using this.
I've also added the interception library which I missed initially. And
I've added proper dependencies between the various libraries. With this,
I'm able to build archives for asan that appear to contain all of the
necessary .o files.
The final tweak here is to start setting up the compile flags and macro
defines expected by ASan and its helper libraries. These may not be
entirely correct currently, they're based loosely on my reading of the
old Makefiles. However, they can be tweaked more easily now that they're
wired up properly.
llvm-svn: 159129
|
| |
|
|
| |
llvm-svn: 159128
|
| |
|
|
|
|
| |
there are no patterns in the instruction.
llvm-svn: 159127
|
| |
|
|
|
|
| |
definition. Make some pattern operands more explicit about types.
llvm-svn: 159126
|
| |
|
|
|
|
|
|
| |
advertising complete support w/o alignas implemented, and its
implementation of alignas in the latest versions is so convoluted as to
be unusable.
llvm-svn: 159125
|
| |
|
|
| |
llvm-svn: 159122
|
| |
|
|
|
|
|
|
|
| |
When a PHI use is <undef>, don't emit a copy in the predecessor block,
but insert an IMPLICIT_DEF instruction instead. This ensures that
virtual register uses are always jointly dominated by defs, even if some
of them are IMPLICIT_DEF.
llvm-svn: 159121
|