| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 160270
|
|
|
|
|
|
| |
on-demand
llvm-svn: 160269
|
|
|
|
| |
llvm-svn: 160268
|
|
|
|
| |
llvm-svn: 160267
|
|
|
|
| |
llvm-svn: 160266
|
|
|
|
|
|
| |
command-line tool stuff to CommandLineClangTool
llvm-svn: 160265
|
|
|
|
| |
llvm-svn: 160264
|
|
|
|
| |
llvm-svn: 160263
|
|
|
|
|
|
| |
malloc, which leads to deadlock in ASan allocator
llvm-svn: 160262
|
|
|
|
|
|
|
|
|
|
|
|
| |
Cast instruction do not have side effects and can consequently be part of a
scop. We special cased them earlier, as they may be problematic within array
subscripts or loop bounds. However, the scalar evolution validator already
checks for them such that there is no need to also check the instructions within
the basic blocks. Checking them is actually overly conservative as the precence
of casts may invalidate a scop, even though scalar evolution is not influenced
by it.
llvm-svn: 160261
|
|
|
|
|
|
|
|
|
|
|
|
| |
undef virtual register. The problem is that ProcessImplicitDefs removes the
definition of the register and marks all uses as undef. If we lose the undef
marker then we get a register which has no def, is not marked as undef. The
live interval analysis does not collect information for these virtual
registers and we crash in later passes.
Together with Michael Kuperstein <michael.m.kuperstein@intel.com>
llvm-svn: 160260
|
|
|
|
| |
llvm-svn: 160259
|
|
|
|
| |
llvm-svn: 160258
|
|
|
|
| |
llvm-svn: 160257
|
|
|
|
|
|
|
|
|
|
|
|
| |
It turns out that ASan relied on the at-the-end block insertion order to
(purely by happenstance) disable some LLVM optimizations, which in turn
start firing when the ordering is made more "normal". These
optimizations in turn merge many of the instrumentation reporting calls
which breaks the return address based error reporting in ASan.
We're looking at several different options for fixing this.
llvm-svn: 160256
|
|
|
|
| |
llvm-svn: 160255
|
|
|
|
|
|
|
|
|
| |
This is particularly useful to the backend code generators which try to
process things in the incoming function order.
Also, cleanup some uses of IRBuilder to be a bit simpler and more clear.
llvm-svn: 160254
|
|
|
|
|
|
|
|
|
|
|
| |
functionality test.
In general, unless the functionality is substantially separated, we
should lump more basic testing into this file. The test running
infrastructure likes having a few test files with more comprehensive
testing within them.
llvm-svn: 160253
|
|
|
|
|
|
| |
CXXFunctionalCastExprs.
llvm-svn: 160252
|
|
|
|
|
|
|
|
|
| |
Added a basic unit test for this with CreateCondBr. I didn't go all the
way and test the switch side as the boilerplate for setting up the
switch IRBuilder unit tests is a lot more. Fortunately, the two share
all the interesting code paths.
llvm-svn: 160251
|
|
|
|
|
|
|
| |
This is in anticipation of changing CreateCondBr and wanting to test
those changes.
llvm-svn: 160250
|
|
|
|
|
|
| |
the original move of IRBuilder.
llvm-svn: 160249
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
needs realignment.
It is intended to fix PR11468.
Old prologue and epilogue looked like this:
push %rbp
mov %rsp, %rbp
and $alignment, %rsp
push %r14
push %r15
...
pop %r15
pop %r14
mov %rbp, %rsp
pop %rbp
The problem was to reference the locations of callee-saved registers in exception handling:
locations of callee-saved had to be re-calculated regarding the stack alignment operation. It would
take some effort to implement this in LLVM, as currently MachineLocation can only have the form
"Register + Offset". Funciton prologue and epilogue are now changed to:
push %rbp
mov %rsp, %rbp
push %14
push %15
and $alignment, %rsp
...
lea -$size_of_saved_registers(%rbp), %rsp
pop %r15
pop %r14
pop %rbp
Reviewed by Chad Rosier.
llvm-svn: 160248
|
|
|
|
| |
llvm-svn: 160247
|
|
|
|
|
|
|
| |
pattern might be an alias template which doesn't use its arguments). It's always
instantiation-dependent, though.
llvm-svn: 160246
|
|
|
|
|
|
|
|
| |
as an array of its base class TemplateArgument. Switch the const
TemplateArgument* parameters of InstantiatingTemplate's constructors to
ArrayRef<TemplateArgument> to prevent this from happening again in the future.
llvm-svn: 160245
|
|
|
|
|
|
|
|
|
| |
being a property of a canonical type to being a property of the fully-sugared
type. This should only make a difference in the case where an alias template
ignores one of its parameters, and that parameter is an unexpanded parameter
pack.
llvm-svn: 160244
|
|
|
|
|
|
|
|
|
|
|
|
| |
the move of *Builder classes into the Core library.
No uses of this builder in Clang or DragonEgg I could find.
If there is a desire to have an IR-building-support library that
contains all of these builders, that can be easily added, but currently
it seems likely that these add no real overhead to VMCore.
llvm-svn: 160243
|
|
|
|
| |
llvm-svn: 160242
|
|
|
|
| |
llvm-svn: 160241
|
|
|
|
|
|
| |
has a much lower default stack limit than the systems I have access to.
llvm-svn: 160240
|
|
|
|
| |
llvm-svn: 160238
|
|
|
|
|
|
|
|
|
|
|
| |
IRBuilder, DIBuilder, etc.
This is the proper layering as MDBuilder can't be used (or implemented)
without the Core Metadata representation.
Patches to Clang and Dragonegg coming up.
llvm-svn: 160237
|
|
|
|
| |
llvm-svn: 160236
|
|
|
|
|
|
|
|
| |
wider than the output element type. Make sure to trunc them if needed.
Together with Michael Kuperstein <michael.m.kuperstein@intel.com>
llvm-svn: 160235
|
|
|
|
| |
llvm-svn: 160234
|
|
|
|
|
|
| |
Patch by Sam Panzer!
llvm-svn: 160233
|
|
|
|
|
|
|
|
|
| |
fit various targets.
- Make sure existence of "barrier".
- Confirm reload corresponding to spill.
llvm-svn: 160232
|
|
|
|
| |
llvm-svn: 160231
|
|
|
|
|
|
|
|
|
|
| |
Allow the folding of vbroadcastRR to vbroadcastRM, where the memory operand is a spill slot.
PR12782.
Together with Michael Kuperstein <michael.m.kuperstein@intel.com>
llvm-svn: 160230
|
|
|
|
|
|
|
|
|
| |
Add a micro-optimization to getNode of CONCAT_VECTORS when both operands are undefs.
Can't find a testcase for this because VECTOR_SHUFFLE already handles undef operands, but Duncan suggested that we add this.
Together with Michael Kuperstein <michael.m.kuperstein@intel.com>
llvm-svn: 160229
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The notable fix is to look at any dependencies attached to the kill
instruction (or other instructions between MI nad the kill) where the
dependencies are specific to the register in question.
The old code implicitly handled this by rejecting the transform if *any*
other uses were found within the block, but after the start point. The
new code directly finds the kill, and has to re-use the existing
dependency scan to check for non-kill uses.
This was caught by self-host, but I found the bug via inspection and use
of absurd assert scaffolding to compute the kills in two ways and
compare them. So I have no useful testcase for this other than
"bootstrap". I'd work harder to reduce a test case if this particular
code were likely to live for a long time.
Thanks to Benjamin Kramer for reviewing the fix itself.
llvm-svn: 160228
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
struct __attribute__((visibility("hidden"))) zed {
};
struct __attribute__((visibility("hidden"))) zed;
Which is a bit silly and got a lot noisier now that we correctly handle
visibility pragmas. This patch fixes that and also has some extra quality
improvements:
* We now produce an error instead of a warning for
struct __attribute__((visibility("hidden"))) zed {
};
struct __attribute__((visibility("default"))) zed;
* The "after definition" warning now points to the new attribute that is
ignored instead of pointing to the declaration.
llvm-svn: 160227
|
|
|
|
| |
llvm-svn: 160226
|
|
|
|
|
|
| |
Finishes rdar://11875995
llvm-svn: 160225
|
|
|
|
|
|
|
|
| |
that we just copied from here and replace all uses.
Part of rdar://11875995
llvm-svn: 160224
|
|
|
|
|
|
|
|
| |
APInt/APSInt classes.
Part of rdar://11875995
llvm-svn: 160223
|
|
|
|
|
|
|
|
| |
vector with the same element type as the input vector.
This is needed because of the patterns we have for the VP[SLL/SRA/SRL][W/D/Q] instructions.
llvm-svn: 160222
|
|
|
|
|
|
|
|
| |
single undef.
The unoptimized concat_vectors isd prevented the canonicalization of the vector_shuffle node.
llvm-svn: 160221
|
|
|
|
| |
llvm-svn: 160220
|