| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
| |
llvm-svn: 225414
|
| |
|
|
| |
llvm-svn: 225413
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Patch by: Ramkumar Ramachandra <artagnon@gmail.com>
"This patch started out as an exploration of gc.relocate, and an attempt
to write a simple test in call-lowering. I then noticed that the
arguments of gc.relocate were not checked fully, so I went in and fixed
a few things. Finally, the most important outcome of this patch is that
my new error handling code caught a bug in a callsite in
stackmap-format."
Differential Revision: http://reviews.llvm.org/D6824
llvm-svn: 225412
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now that we have MVT::FIRST_VALUETYPE (r225362), we can provide a method
checking that the MVT is valid, that is, it's in
[FIRST_VALUETYPE, LAST_VALUETYPE[.
This commit also uses it in a few asserts, that would previously accept
invalid MVTs, such as the default constructed -1. In that case,
the code following those asserts would do an out-of-bounds array access.
Using MVT::isValid, those assertions fail as expected when passed
invalid MVTs.
It feels clunky to have such a validity checking function, but it's
at least better than the alternative of broken manual checks.
llvm-svn: 225411
|
| |
|
|
| |
llvm-svn: 225410
|
| |
|
|
|
|
|
|
|
| |
I keep forgetting the exact spelling of -macosx-version-min=, and now I can
run `bin/clang --help | grep version -A 2` to remind myself. While here,
also document -mios-version-min=. Don't document -mios-simulator-version-min=
as it's just an alias for -mios-version-min= these days.
llvm-svn: 225409
|
| |
|
|
| |
llvm-svn: 225408
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
they fail instead of printing out incorrect information.
To fix this I added a new method to TestBase:
def getRerunArgs(self):
return " -f %s.%s" % (self.__class__.__name__, self._testMethodName)
The InlineTest which inherits from TestBase then overrides this function with a custom version which does the right thing.
llvm-svn: 225407
|
| |
|
|
|
|
|
|
|
|
| |
Allow distinct `MDNode`s to be explicitly created. There's no way (yet)
of representing their distinctness in assembly/bitcode, however, so this
still isn't first-class.
Part of PR22111.
llvm-svn: 225406
|
| |
|
|
|
|
|
| |
Folding the same immediate into multiple instruction will increase
program size, which can hurt performance.
llvm-svn: 225405
|
| |
|
|
|
|
| |
Hopefully this one won't kill the git mirror...
llvm-svn: 225404
|
| |
|
|
|
|
| |
and the tests test for that. STL @ MS pointed out that the standard doesn't requie these objects to derive from unary_function, and so the tests should not require that either. Change the tests to check for the embedded typedefs - which ARE required. No change to the library.
llvm-svn: 225403
|
| |
|
|
|
|
| |
negate/bit_not.pass/logical_not) were defined as deriving from unary_funtion. That restriction was removed in C++11, but the tests still check for this. Change the test to look for the embedded types first_argument/second_argument/result_type. No change to the library, just more standards-compliant tests. Thanks to STL @ Microsoft for the suggestion.
llvm-svn: 225402
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Add API to indicate whether an `MDNode` is distinct. A distinct node is
not stored in the MDNode uniquing tables, and will never be returned by
`MDNode::get()`.
Although distinct nodes are only currently created by uniquing
collisions (when operands change), PR22111 will allow these nodes to be
explicitly created.
llvm-svn: 225401
|
| |
|
|
|
|
|
|
| |
E.g. %-foo and %fo-o.
Thanks to eagle-eyed reporter Tomas Brukner.
llvm-svn: 225400
|
| |
|
|
| |
llvm-svn: 225399
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D6797
lldb-gdbserver statically links all llvm dependencies. This allows
dead stripping code and reduces total binary size.
This change modifies lldb-plaform to static link llvm dependencies
like lldb-gdbserver.
llvm-svn: 225398
|
| |
|
|
|
|
|
|
|
|
|
| |
`MDNode::replaceOperandWith()` changes all instances of metadata. Stop
using it when linking module flags, since (due to uniquing) the flag
values could be used by other metadata.
Instead, use new API `NamedMDNode::setOperand()` to update the reference
directly.
llvm-svn: 225397
|
| |
|
|
| |
llvm-svn: 225395
|
| |
|
|
| |
llvm-svn: 225394
|
| |
|
|
| |
llvm-svn: 225393
|
| |
|
|
|
|
|
|
| |
A few loops do trickier things than just iterating on an MVT subset,
so I'll leave them be for now.
Follow-up of r225387.
llvm-svn: 225392
|
| |
|
|
| |
llvm-svn: 225391
|
| |
|
|
|
|
|
|
| |
This would add another library dependency to Polly. In many cases the
JSCoP interface we have should be enough and an external JSCoP <> OpenSCoP
converter could be written. We can reconsider this if new use cases show up.
llvm-svn: 225390
|
| |
|
|
|
|
|
|
|
|
|
|
| |
transform.
Also diagnose typos in the initializer of an invalid C++ declaration.
Both issues were hit using the same line of test code, depending on
whether the code was treated as C or C++.
Fixes PR22092.
llvm-svn: 225389
|
| |
|
|
| |
llvm-svn: 225388
|
| |
|
|
|
|
|
|
|
| |
This commit adds a simple iterator over that enum, and a few
functions to create iterator ranges over the most common types.
Differential Revision: http://reviews.llvm.org/D6537
llvm-svn: 225387
|
| |
|
|
|
|
|
| |
This was already fixed by r224481, but apparently was accidentally
reverted in r225207.
llvm-svn: 225386
|
| |
|
|
| |
llvm-svn: 225385
|
| |
|
|
| |
llvm-svn: 225384
|
| |
|
|
|
|
|
|
|
|
|
|
| |
used with
options other than just -disassemble so that universal files can be used with other
options combined with -arch options.
No functional change to existing options and use. One test case added for the
additional functionality with a universal file an a -arch option.
llvm-svn: 225383
|
| |
|
|
|
|
|
|
|
|
|
| |
Use VGPR_32 register class instead. These two register classes were
identical and having separate classes was causing
SIInstrInfo::isLegalOperands() to be overly conservative in some cases.
This change is necessary to prevent future paches from missing a folding
opportunity in fneg-fabs.ll.
llvm-svn: 225382
|
| |
|
|
| |
llvm-svn: 225381
|
| |
|
|
| |
llvm-svn: 225380
|
| |
|
|
|
|
|
|
| |
The two buildbot failures were addressed in LLVM r225378 and CFE r225359.
This rapplies commit 225272 without modifications.
llvm-svn: 225379
|
| |
|
|
| |
llvm-svn: 225378
|
| |
|
|
|
|
| |
[USR] maintains existing functionality to old instructions without encodings.
llvm-svn: 225377
|
| |
|
|
| |
llvm-svn: 225376
|
| |
|
|
|
|
| |
add/equal_to/logical_or) were defined as deriving from binary_funtion. That restriction was removed in C++11, but the tests still check for this. Change the test to look for the embedded types first_argument/second_argument/result_type. No change to the library, just more standards-compliant tests. Thanks to STL @ Microsoft for the suggestion.
llvm-svn: 225375
|
| |
|
|
| |
llvm-svn: 225374
|
| |
|
|
|
|
|
| |
This is used to simplify the SIFoldOperands pass and make it easier to
fold immediates.
llvm-svn: 225373
|
| |
|
|
| |
llvm-svn: 225372
|
| |
|
|
| |
llvm-svn: 225371
|
| |
|
|
| |
llvm-svn: 225370
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This allows folding of sequences like:
s[0:1] = s_mov_b64 4
v_add_i32 v0, s0, v0
v_addc_u32 v1, s1, v1
into
v_add_i32 v0, 4, v0
v_add_i32 v1, 0, v1
llvm-svn: 225369
|
| |
|
|
| |
llvm-svn: 225368
|
| |
|
|
| |
llvm-svn: 225367
|
| |
|
|
| |
llvm-svn: 225366
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change includes the most basic possible GCStrategy for a GC which is using the statepoint lowering code. At the moment, this GCStrategy doesn't really do much - aside from actually generate correct stackmaps that is - but I went ahead and added a few extra correctness checks as proof of concept. It's mostly here to provide documentation on how to do one, and to provide a point for various optimization legality hooks I'd like to add going forward. (For context, see the TODOs in InstCombine around gc.relocate.)
Most of the validation logic added here as proof of concept will soon move in to the Verifier. That move is dependent on http://reviews.llvm.org/D6811
There was discussion in the review thread about addrspace(1) being reserved for something. I'm going to follow up on a seperate llvmdev thread. If needed, I'll update all the code at once.
Note that I am deliberately not making a GCStrategy required to use gc.statepoints with this change. I want to give folks out of tree - including myself - a chance to migrate. In a week or two, I'll make having a GCStrategy be required for gc.statepoints. To this end, I added the gc tag to one of the test cases but not others.
Differential Revision: http://reviews.llvm.org/D6808
llvm-svn: 225365
|
| |
|
|
|
|
|
|
| |
Shorter and doesn't need -O2 -- but still suboptimal as it's still doing
-emit-obj. dblaikie says he'll improve this when he'll reland his change
with a fix.
llvm-svn: 225364
|