| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 186577
|
| |
|
|
| |
llvm-svn: 186576
|
| |
|
|
|
|
|
| |
Existing tests are not changed but the set-up work is moved into a fixture
to simplify forthcoming new tests.
llvm-svn: 186575
|
| |
|
|
| |
llvm-svn: 186574
|
| |
|
|
|
|
| |
This should be the last of the R.SBG patches for now.
llvm-svn: 186573
|
| |
|
|
|
|
| |
Also, fix the namespace for two instructions that I missed previously.
llvm-svn: 186572
|
| |
|
|
|
|
|
|
|
| |
The original code only folded SRA into ROTATE ... SELECTED BITS
if there was no outer shift. This patch splits out that check
and generalises it slightly. The extra cases aren't really that
interesting, but this is paving the way for RNSBG support.
llvm-svn: 186571
|
| |
|
|
|
|
| |
Extend the previous R.SBG patches to handle XORs.
llvm-svn: 186570
|
| |
|
|
|
|
|
|
|
|
|
|
| |
In hindsight, using "RISBG" for something that can be any type of
R.SBG instruction was a bit confusing, so this renames it to RxSBG.
That might not be the best choice either, since there is an instruction
called RXSBG, but hopefully the lower-case letter stands out enough.
While there I fixed a couple of GNUisms that had crept in --
sorry about that!
llvm-svn: 186569
|
| |
|
|
|
|
|
|
| |
The N3VDIntnp pattern takes bits<5> and I gave it 6 bits.
Thanks to Jiangning Liu for spotting it!
llvm-svn: 186568
|
| |
|
|
|
|
| |
parsing. The corresponding test cases are added to the patch.
llvm-svn: 186567
|
| |
|
|
|
|
| |
should.
llvm-svn: 186566
|
| |
|
|
|
|
|
|
|
|
|
|
| |
end of a vector. This was found with ASan. I've had one other report of
a crasher, but thus far been unable to reproduce the crash. It may well
be fixed with this version, and if not I'd like to get more information
from the build bots about what is happening.
See r186316 for the full commit log for the new implementation of the
SROA algorithm.
llvm-svn: 186565
|
| |
|
|
|
|
|
|
| |
point isn't 64-bit aligned
Add x86-64 triple, and check its datalayout. Also add some comments, and use the new CHECK-LABEL.
llvm-svn: 186564
|
| |
|
|
|
|
| |
consecutive in memory) by checking for additional patterns that don't need to go through SCEV.
llvm-svn: 186563
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Support for dynamic stack alignments in the PPC backend has been unfinished, in
part because it depends on dynamic stack realignment (which I only just
recently implemented fully). Now we can also support dynamic allocas with
higher than the default target stack alignment (16 bytes).
In order to round-up the requested size to the maximum requested alignment, we
need an additional register to hold the rounded-up size. We're already using one
scavenged register to hold the previous stack-pointer value (which needs to be
stored with the signal-safe stdux update), and so when we have dynamic allocas
and a large alignment, we allocate two emergency spill slots for the scavenger.
llvm-svn: 186562
|
| |
|
|
| |
llvm-svn: 186561
|
| |
|
|
| |
llvm-svn: 186560
|
| |
|
|
|
|
|
|
|
|
|
| |
We don't want cast and dyn_cast to work on temporaries. They don't extend
lifetime like a direct bind to a reference would, so they can introduce
hard to find bugs.
I added tests to make sure we don't regress this. Thanks to Eli Friedman for
noticing this and for his suggestions on how to test it.
llvm-svn: 186559
|
| |
|
|
|
|
|
| |
the comment. No functionality change. This change broken out of
http://llvm-reviews.chandlerc.com/D996 .
llvm-svn: 186558
|
| |
|
|
| |
llvm-svn: 186557
|
| |
|
|
|
|
|
| |
use the conversion to bool to check if we've managed to get a type
that isn't default constructed - as we meant to in the first place.
llvm-svn: 186556
|
| |
|
|
| |
llvm-svn: 186555
|
| |
|
|
| |
llvm-svn: 186554
|
| |
|
|
|
|
| |
__destroy_helper_block_, but do generate scope information.
llvm-svn: 186553
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
inspired by CodegenFunction::LexicalScope.
- NoLocation temporarily turns off debug locations altogether.
This is useful for emitting instructions that should be
counted towards the function prologue.
- BuiltinLocation temporarily switches to an artificial debug location
that has a valid scope, but no line information. This is useful when
emitting compiler-generated helper functions that have no source
location associated with them.
llvm-svn: 186552
|
| |
|
|
| |
llvm-svn: 186551
|
| |
|
|
| |
llvm-svn: 186550
|
| |
|
|
|
|
| |
I'm moving this functionality into clang instead.
llvm-svn: 186549
|
| |
|
|
| |
llvm-svn: 186548
|
| |
|
|
| |
llvm-svn: 186547
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
r186331).
Original commit log:
If we friend a declaration twice, that should not make it visible to
name lookup in the surrounding context. Slightly rework how we handle
friend declarations to inherit the visibility of the prior
declaration, rather than setting a friend declaration to be visible
whenever there was a prior declaration.
llvm-svn: 186546
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
First, this changes the base-pointer implementation to remove an unnecessary
complication (and one that is incompatible with how builtin SjLj is
implemented): instead of using r31 as the base pointer when it is not needed as
a frame pointer, now the base pointer will always be r30 when needed.
Second, we introduce another pseudo register, BP, which is used just like the FP
pseudo register to refer to the base register before we know for certain what
register it will be.
Third, we now save BP into the jmp_buf, and restore r30 from that slot in
longjmp. If the function that called setjmp did not use a base pointer, then
r30 will be overwritten by the setjmp-calling-function's restore code. FP
restoration (which is restored into r31) works the same way.
llvm-svn: 186545
|
| |
|
|
|
|
|
|
| |
of operator bool change.
Also convert a variable in DebugIR.
llvm-svn: 186544
|
| |
|
|
|
|
|
|
|
| |
it clear what we want to do. Unfortunately the conversion to
pointer operator fires now instead and chasing down all of the
conversions and making them explicit and handled is a large task
so add a FIXME with it.
llvm-svn: 186543
|
| |
|
|
| |
llvm-svn: 186542
|
| |
|
|
| |
llvm-svn: 186541
|
| |
|
|
|
|
|
|
|
|
|
| |
There were a couple of different loops that were not handling
'.' correctly in APFloat::convertFromHexadecimalString; these mistakes
could lead to assertion failures and incorrect rounding for overlong
hex float literals.
Fixes PR16643.
llvm-svn: 186539
|
| |
|
|
| |
llvm-svn: 186538
|
| |
|
|
| |
llvm-svn: 186537
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
cl.exe treats wide bitfields as an error. This patch causes them to be
an error if IsMsStruct is true, as it is in straight C.
Patch by Warren Hunt!
Reviewers: eli.friedman
Differential Revision: http://llvm-reviews.chandlerc.com/D1125
llvm-svn: 186536
|
| |
|
|
|
|
|
|
|
| |
Before:
SomeType s __attribute__((unused))(InitValue);
After:
SomeType s __attribute__((unused)) (InitValue);
llvm-svn: 186535
|
| |
|
|
|
|
|
|
| |
Compile-time #ifdef-ery isn't right, but this makes core debugging work on
FreeBSD and highlights the parts that will need to be changed for runtime
arch support.
llvm-svn: 186534
|
| |
|
|
| |
llvm-svn: 186533
|
| |
|
|
| |
llvm-svn: 186532
|
| |
|
|
| |
llvm-svn: 186531
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This should fix the windows bots. It looks like the failing tests are of the
form
prog1 > file
prog2 file
and prog2 fails trying to read the file. The best fix would probably be to close
stdout/stderr in prog1, but it was not the intention of 186511 to change this,
so just restore the old behavior for now.
llvm-svn: 186530
|
| |
|
|
| |
llvm-svn: 186529
|
| |
|
|
| |
llvm-svn: 186528
|
| |
|
|
| |
llvm-svn: 186527
|