| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1> Use DebugInfoFinder to find debug info MDNodes.
2> Add disable-debug-info-verifier to disable verifying debug info.
3> Disable verifying for testing cases that fail (will update the testing cases
later on).
4> MDNodes generated by clang can have empty filename for TAG_inheritance and
TAG_friend, so DIType::Verify is modified accordingly.
Note that DebugInfoFinder does not list all debug info MDNode.
For example, clang can generate:
metadata !{i32 786468}, which will fail to verify.
This MDNode is used by debug info but not included in DebugInfoFinder.
This MDNode is generated as a temporary node in DIBuilder::createFunction
Value *TElts[] = { GetTagConstant(VMContext, DW_TAG_base_type) };
MDNode::getTemporary(VMContext, TElts)
llvm-svn: 186634
|
| |
|
|
|
|
| |
Because it broke s390x and ppc64-linux buildbots. This reverts commit r186623.
llvm-svn: 186627
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
function definitions for more informative error messages. No functionality change.
All changes were made by the following bash script:
find test/CodeGen -name "*.ll" | \
while read NAME; do
echo "$NAME"
grep -q "^; *RUN: *llc.*debug" $NAME && continue
grep -q "^; *RUN:.*llvm-objdump" $NAME && continue
grep -q "^; *RUN: *opt.*" $NAME && continue
TEMP=`mktemp -t temp`
cp $NAME $TEMP
sed -n "s/^define [^@]*@\([A-Za-z0-9_]*\)(.*$/\1/p" < $NAME | \
while read FUNC; do
sed -i '' "s/;\([A-Za-z0-9_-]*\)\([A-Za-z0-9_-]*\):\( *\)$FUNC[:]* *\$/;\1\2-LABEL:\3$FUNC:/g" $TEMP
done
sed -i '' "s/;\(.*\)-LABEL-LABEL:/;\1-LABEL:/" $TEMP
sed -i '' "s/;\(.*\)-NEXT-LABEL:/;\1-NEXT:/" $TEMP
sed -i '' "s/;\(.*\)-NOT-LABEL:/;\1-NOT:/" $TEMP
sed -i '' "s/;\(.*\)-DAG-LABEL:/;\1-DAG:/" $TEMP
mv $TEMP $NAME
done
This script catches a superset of the cases caught by the script associated with commit r186280. It initially found some false positives due to unusual constructs in a minority of tests; all such cases were disambiguated first in commit r186621.
llvm-svn: 186624
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Dump optional data directory entries in the PE/COFF header, so that
we can test the output of LLD linker. This patch updates the test binary
file, but the source of the binary is the same. I just re-linked the file.
I don't know how the previous file was linked, but the previous file did
not have any data directory entries for some reason.
Reviewers: rafael
CC: llvm-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D1148
llvm-svn: 186623
|
| |
|
|
|
|
| |
function names that also were names of instructions and/or doing other unusual things that were making the test not amenable to otherwise scriptable pattern matching.) No functionality change.
llvm-svn: 186621
|
| |
|
|
|
|
| |
https://bugs.freedesktop.org/show_bug.cgi?id=66175
llvm-svn: 186616
|
| |
|
|
| |
llvm-svn: 186615
|
| |
|
|
| |
llvm-svn: 186614
|
| |
|
|
| |
llvm-svn: 186613
|
| |
|
|
|
|
| |
This should fix the chapuni bots.
llvm-svn: 186611
|
| |
|
|
|
|
| |
It also doubles a test that F_Append works.
llvm-svn: 186606
|
| |
|
|
|
|
| |
function definitions for more informative error messages. No functionality change.
llvm-svn: 186594
|
| |
|
|
|
|
|
|
|
| |
file_type::fifo_file in sys::fs::getStatus(HANDLE).
It fixes llvm/test/Other/close-stderr.ll on msys.
FIXME: Provide unittests.
llvm-svn: 186588
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The plan is to use it for clang and lld.
Major behavior changes:
- We can now parse UTF-16 files that have a byte order mark.
- PR16209: Don't drop backslashes on the floor if they don't escape
anything.
The actual parsing loop was based on code from Clang's driver.cpp,
although it's been rewritten to track its state with control flow rather
than state variables.
Reviewers: hans
Differential Revision: http://llvm-reviews.chandlerc.com/D1170
llvm-svn: 186587
|
| |
|
|
|
|
| |
sys::fs::status() doesn't work on pipes. Investigating.
llvm-svn: 186586
|
| |
|
|
|
|
| |
Tests for r186574.
llvm-svn: 186580
|
| |
|
|
| |
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
|
| |
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 186538
|
| |
|
|
| |
llvm-svn: 186533
|
| |
|
|
|
|
|
|
|
|
|
| |
This has some advantages:
* Lets us use native, utf16 windows functions.
* Easy to produce good errors on windows about trying to use a
directory when we want a file.
* Simplifies the unix version a bit.
llvm-svn: 186511
|
| |
|
|
|
|
|
|
| |
Duncan pointed out a mistake in my fix in r186425 when only one of the allocas
being compared had the target-default alignment. This is essentially his
suggested solution. Thanks!
llvm-svn: 186510
|
| |
|
|
|
|
| |
examples are given.
llvm-svn: 186507
|
| |
|
|
| |
llvm-svn: 186506
|
| |
|
|
|
|
| |
Patch by Robert Lytton.
llvm-svn: 186500
|
| |
|
|
|
|
| |
for vector stores. Fixes PR16640.
llvm-svn: 186491
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Because the builtin longjmp implementation uses a CTR-based indirect jump, when
the control flow arrives at the builtin setjmp call, the CTR register has
necessarily been clobbered. Correspondingly, this adds CTR to the list of
implicit definitions of the builtin setjmp pseudo instruction.
We don't need to add CTR to the implicit definitions of builtin longjmp
because, even though it does clobber the CTR register, the control flow cannot
return to inside the loop unless there is also a builtin setjmp call.
llvm-svn: 186488
|
| |
|
|
|
|
|
|
| |
llvm::outs() would be set to O_TEXT by default.
llvm/test/Object/check_binary_output.ll is expected to pass on win32.
llvm-svn: 186480
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This builds on some frame-lowering code that has existed since 2005 (r24224)
but was disabled in 2008 (r48188) because it needed base pointer support to
function correctly. This implementation follows the strategy suggested by Dale
Johannesen in r48188 where the following comment was added:
This does not currently work, because the delta between old and new stack
pointers is added to offsets that reference incoming parameters after the
prolog is generated, and the code that does that doesn't handle a variable
delta. You don't want to do that anyway; a better approach is to reserve
another register that retains to the incoming stack pointer, and reference
parameters relative to that.
And now we do exactly that. If we don't need a frame pointer, then we use r31
as a base pointer. If we do need a frame pointer, then we use r30 as a base
pointer. The base pointer retains the value of the stack pointer before it was
decremented in the prologue. We then use the base pointer to resolve all
negative frame indicies. The basic scheme follows that for base pointers in the
X86 backend.
We use a base pointer when we need to dynamically realign the incoming stack
pointer. This currently applies only to static objects (dynamic allocas with
large alignments, and base-pointer support in SjLj lowering will come in future
commits).
llvm-svn: 186478
|
| |
|
|
|
|
| |
-mtriple=x86_64-unknown-unknown to satisfy win32-targeted configuration.
llvm-svn: 186477
|
| |
|
|
|
|
|
|
| |
message catalogue.
For example, 'No such file or directory' cannot be seen on Japanese version of msvcrt.
llvm-svn: 186469
|
| |
|
|
|
|
| |
Investigating.
llvm-svn: 186468
|
| |
|
|
|
|
|
|
|
|
| |
This adds an instruction alias to make the assembler recognize the alternate literal form: pli [PC, #+/-<imm>]
See A8.8.129 in the ARM ARM (DDI 0406C.b).
Fixes <rdar://problem/14403733>.
llvm-svn: 186459
|
| |
|
|
| |
llvm-svn: 186445
|
| |
|
|
| |
llvm-svn: 186444
|
| |
|
|
| |
llvm-svn: 186442
|
| |
|
|
| |
llvm-svn: 186439
|
| |
|
|
| |
llvm-svn: 186436
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Use PMIN/PMAX for UGE/ULE vector comparions to reduce the number of required
instructions. This trick also works for UGT/ULT, but there is no advantage in
doing so. It wouldn't reduce the number of instructions and it would actually
reduce performance.
Reviewer: Ben
radar:5972691
llvm-svn: 186432
|
| |
|
|
|
|
|
|
|
|
|
|
| |
For safety, the inliner cannot decrease the allignment on an alloca when
merging it with another.
I've included two variants of the test case for this: one with DataLayout
available, and one without. When DataLayout is not available, if only one of
the allocas uses the default alignment (getAlignment() == 0), then they cannot
be safely merged.
llvm-svn: 186425
|
| |
|
|
|
|
| |
With this change llvm-ar can remove the temporary file on windows too.
llvm-svn: 186423
|
| |
|
|
| |
llvm-svn: 186414
|