| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D8544
llvm-svn: 233378
|
| |
|
|
|
|
|
|
| |
A parameter pack after a default argument is now valid.
PR23029.
llvm-svn: 233377
|
| |
|
|
|
|
|
|
| |
This is ill-formed (and cannot be used anyways).
PR23028.
llvm-svn: 233376
|
| |
|
|
| |
llvm-svn: 233375
|
| |
|
|
| |
llvm-svn: 233374
|
| |
|
|
|
|
|
| |
If user does malloc(1<<30), the write to meta shadow
can cause excessive memory consumption.
llvm-svn: 233373
|
| |
|
|
| |
llvm-svn: 233372
|
| |
|
|
|
|
|
|
|
|
|
| |
The last user of this code vanished with r223368, but this function still was
around being executed on every process start, allocating some memory and then
never being used again. No functional change.
Also avoids occasional complaints about the benign leak in this function, like
PR23037.
llvm-svn: 233371
|
| |
|
|
|
|
|
|
| |
This re-adds float2int to the tree, after fixing PR23038. It turns
out the argument to APSInt() is true-if-unsigned, rather than
true-if-signed :(. Added testcase and explanatory comment.
llvm-svn: 233370
|
| |
|
|
| |
llvm-svn: 233369
|
| |
|
|
| |
llvm-svn: 233368
|
| |
|
|
| |
llvm-svn: 233367
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
"Fix the MachineScheduler's logic for updating ready times for in-order.
Now the scheduler updates a node's ready time as soon as it is
scheduled, before releasing dependent nodes."
This fix was only made in one variant of the ScheduleDAGMI driver.
Francois de Ferriere reported the issue in the other bit of code where
it was also needed.
I never got around to coming up with a test case, but it's an
obvious fix that shouldn't be delayed any longer.
I'll try to refactor this code a little better.
I did verify performance on a wide variety of targets and saw no
negative impact with this fix.
llvm-svn: 233366
|
| |
|
|
| |
llvm-svn: 233365
|
| |
|
|
| |
llvm-svn: 233364
|
| |
|
|
| |
llvm-svn: 233363
|
| |
|
|
|
|
| |
The assertion here was more expensive then it needed to be. We're only inserting allocas in the entry block, so we only need to consider ones in the entry block.
llvm-svn: 233362
|
| |
|
|
| |
llvm-svn: 233361
|
| |
|
|
| |
llvm-svn: 233360
|
| |
|
|
|
|
| |
Minor naming, one potentially unsafe cast
llvm-svn: 233359
|
| |
|
|
|
|
| |
All the removed assertions are either implied locally by the assert at the top of the function or properties of the verifier.
llvm-svn: 233358
|
| |
|
|
|
|
| |
This was discussed a while back and I left it optional for migration. Since it's been far more than the 'week or two' that was discussed, time to actually make this manditory.
llvm-svn: 233357
|
| |
|
|
|
|
|
|
|
|
| |
This patch adds support for explicitly provided spill slots in the GC arguments of a gc.statepoint. This is somewhat analogous to gcroot, but leverages the STATEPOINT MI node and StackMap infrastructure. The motivation for this is:
1) The stack spilling code for gc.statepoints hasn't advanced as fast as I'd like. One major option is to give up on doing spilling in the backend and do it at the IR level instead. We'd give up the ability to have gc values in registers, but that's a minor cost in practice. We are not neccessarily moving in that direction, but having the ability to prototype such a thing cheaply is interesting.
2) I want to port the gcroot lowering to use the statepoint infastructure. Given the metadata printers for gcroot expect a fixed set of stack roots, it's easiest to just reuse the explicit stack slots and pass them directly to the underlying statepoint.
I'm holding off on the documentation for the new feature until I'm reasonable sure this is going to stick around.
llvm-svn: 233356
|
| |
|
|
|
|
|
| |
This test returns nonnative integer types which aren't supported on all targets.
The real issue with the SelectionDAG scheduler is with x86 EFLAGS.
llvm-svn: 233355
|
| |
|
|
|
|
|
|
| |
We don't have any logic to emit those tables yet, so the SDAG lowering
of this intrinsic is just a stub. We can see the intrinsic in the
prepared IR, though.
llvm-svn: 233354
|
| |
|
|
| |
llvm-svn: 233353
|
| |
|
|
|
|
|
|
| |
This patch exposes LoopVectorizer's isInductionVariable function as common
a functionality.
http://reviews.llvm.org/D8608
llvm-svn: 233352
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It can happen (by line CurSU->isPending = true; // This SU is not in
AvailableQueue right now.) that a SUnit is mark as available but is
not in the AvailableQueue. For SUnit being selected for scheduling
both conditions must be met.
This patch mainly defensively protects from invalid removing a node
from a queue. Sometimes nodes are marked isAvailable but are not in
the queue because they have been defered due to some hazard.
Patch by Pawel Bylica!
llvm-svn: 233351
|
| |
|
|
|
|
| |
tree, due to PR23038.
llvm-svn: 233350
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Fix testcases whose variables are invalid. I'm working on a patch that
adds `Verifier` checks for `MDLocalVariable` (and `MDGlobalVariable`),
and these failed because:
- `scope:` fields need to point at `MDLocalScope` and can't be null.
- `file:` fields need to point at `MDFile`.
- `inlinedAt:` fields need to point at `MDLocation`.
llvm-svn: 233349
|
| |
|
|
|
|
|
|
|
|
|
|
| |
declaration name so that we mark declarations for emission in
a deterministic order (and in turn give them deterministic IDs).
This is the last for loop or data structure I can find by inspection of
the AST writer which doesn't use a deterministic order.
Found by inspection, no test case.
llvm-svn: 233348
|
| |
|
|
|
|
|
|
|
|
| |
Previously, if the expr list parsed fine but the expr to the left of the
open parenthesis was invalid (when parsing the suffix of a
postfix-expression), the parsed expr list was just ignored.
Fixes PR23005.
llvm-svn: 233347
|
| |
|
|
|
|
|
| |
We used to dyn_cast<Constant> in the recursive call, but cast<> in the
initial one, and there can be non-Constant initial users.
llvm-svn: 233346
|
| |
|
|
|
|
| |
top of an existing imported-but-not-visible definition.
llvm-svn: 233345
|
| |
|
|
| |
llvm-svn: 233344
|
| |
|
|
|
|
|
|
|
|
|
| |
order based on order of insertion.
This should cause both our warnings about these and the modules
serialization to be deterministic as a consequence.
Found by inspection.
llvm-svn: 233343
|
| |
|
|
|
|
|
|
|
|
| |
a deterministic order.
This uses a MapVector to track the insertion order of selectors.
Found by inspection.
llvm-svn: 233342
|
| |
|
|
|
|
| |
imported-but-not-visible definition.
llvm-svn: 233341
|
| |
|
|
|
|
|
|
|
| |
Change `getNonCompileUnitScope()` to return `MDScope` and
`getConstantAsMetadata()` to return `ConstantAsMetadata`. This will
make it easier to start requiring more type safety in the debug info
hierarchy.
llvm-svn: 233340
|
| |
|
|
|
|
|
|
|
|
|
| |
DeclIDs so that in addition to be grouped by file, the order of these
groups is stable.
Found by inspection, no test case. Not sure this can be observed without
a randomized seed for the hash table, but we shouldn't be relying on the
hash table layout under any circumstances.
llvm-svn: 233339
|
| |
|
|
|
|
| |
-if the decorator functions called with optional arguments, return decorator to orignal method
llvm-svn: 233338
|
| |
|
|
|
|
|
|
|
|
| |
Move all the `MDNode` field helper methods into a new class,
`MDFieldPrinter`, and add helpers for integers, bools, and `DW_*`
symbolic constants. This reduces a ton of code duplication, and makes
it more mechanical to update `AsmWriter` to print broken code in the
context of stricter accessors (like in r233322).
llvm-svn: 233337
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This is similar to the change introduced for variable DIEs in r233098. If the
linkage names of functions are missing in the DWARF, then their fully qualified
names (similar to the name that would be got by demangling their linkage name)
is generated using the decl context.
This change fixes TestNamespace when the test case is compiled with GCC, hence
it is enabled for GCC. The test and the test case are also enhanced to cover
variadic functions.
Test Plan: dotest.py -C <clang|gcc> -p TestNamespace
Reviewers: clayborg
Reviewed By: clayborg
Subscribers: lldb-commits
Differential Revision: http://reviews.llvm.org/D8623
llvm-svn: 233336
|
| |
|
|
|
|
|
|
| |
writing a module to be a set-vector to preserve insertion order.
No test case, found by inspection.
llvm-svn: 233335
|
| |
|
|
|
|
| |
SmallSetVector provides directly.
llvm-svn: 233334
|
| |
|
|
|
|
|
|
|
|
|
|
| |
rewritten decls for Objective-C modules.
Found by inspection and completely obvious, so no test case. Many of the
remaining determinism fixes won't have precise test cases at this point,
but these are the kinds of things we wouldn't ask for a specific test of
during code review but ask authors to fix. The functionality isn't
changing, and should (he he!) already be tested.
llvm-svn: 233333
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
traversing the identifier table.
No easy test case as this table is somewhere between hard and impossible
to observe as non-deterministically ordered. The table is a hash table
but we hash the string contents and never remove entries from the table
so the growth pattern, etc, is all completely fixed. However, relying on
the hash function being deterministic is specifically against the
long-term direction of LLVM's hashing datastructures, which are intended
to provide *no* ordering guarantees. As such, this defends against these
things by sorting the identifiers. Sorting identifiers right before we
emit them to a serialized form seems a low cost for predictability here.
llvm-svn: 233332
|
| |
|
|
|
|
|
|
|
|
|
| |
logic removed.
This logic was both inserting all builtins into the identifier table and
ensuring they would get serialized. The first happens unconditionally
now, and we always write out the entire identifier table. This code can
simply go away.
llvm-svn: 233331
|
| |
|
|
| |
llvm-svn: 233330
|
| |
|
|
|
|
| |
Also, make the assumption explicit in the header.
llvm-svn: 233329
|