| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
This was probably intended all along.
llvm-svn: 156318
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This function is a generalization of getMatchingSuperRegClass() to the
symmetric case where both sides are using a sub-register index. It will
find a super-register class and sub-register indexes that make this
diagram commute:
PreA
SuperRC ----------> RCA
| |
| |
PreB | | SubA
| |
| |
V V
RCB ----------> SubRC
SubB
This can be used to coalesce copies like:
%vreg1:sub16 = COPY %vreg2:sub16; GR64:%vreg1, GR32: %vreg2
llvm-svn: 156317
|
| |
|
|
|
|
|
| |
single use.
rdar://11360370
llvm-svn: 156316
|
| |
|
|
|
|
|
|
|
| |
To solve the inconsistency pointed out in Erik's review, refactor class
hierarchy of ProgramPoints so that PreStmtPurgeDeadSymbols and
PostStmtPurgeDeadSymbols both subclass from StmtPoint instead of
PostStmt.
llvm-svn: 156315
|
| |
|
|
|
|
|
|
| |
default "ctrl-r" and "ctrl-w" bindings
so that user-provided .editrc has a chance to override the lldb's default key bindings.
llvm-svn: 156314
|
| |
|
|
|
|
| |
Fixes a -Woverflow warning from gcc when building for 32-bit platforms.
llvm-svn: 156313
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch will optimize -(x != 0) on X86
FROM
cmpl $0x01,%edi
sbbl %eax,%eax
notl %eax
TO
negl %edi
sbbl %eax %eax
In order to generate negl, I added patterns in Target/X86/X86InstrCompiler.td:
def : Pat<(X86sub_flag 0, GR32:$src), (NEG32r GR32:$src)>;
rdar: 10961709
llvm-svn: 156312
|
| |
|
|
|
|
|
|
| |
already covered by the check with the objectsize builtin
remove the comparison of objectsize with -1. since it's an unsigned comparison, it will always succeed if objectsize returns -1, which is enough to have the check removed
llvm-svn: 156311
|
| |
|
|
|
|
|
| |
As per Jordy's and Ted's comment, use the default StopTracking summary
instead of adding all arguments to ScratchArs.
llvm-svn: 156310
|
| |
|
|
|
|
| |
container that has the nested type __storage_type. This prevents accidental instantiation such as in http://llvm.org/bugs/show_bug.cgi?id=12755. This fixes http://llvm.org/bugs/show_bug.cgi?id=12755.
llvm-svn: 156308
|
| |
|
|
|
|
|
| |
and occasionally failure to recognize instructions.
This problem affects ARM and Thumb BLX instructions.
llvm-svn: 156307
|
| |
|
|
| |
llvm-svn: 156306
|
| |
|
|
| |
llvm-svn: 156305
|
| |
|
|
| |
llvm-svn: 156304
|
| |
|
|
| |
llvm-svn: 156302
|
| |
|
|
| |
llvm-svn: 156301
|
| |
|
|
| |
llvm-svn: 156300
|
| |
|
|
|
|
|
|
|
| |
The chdir is not the perfect fix, as it is thread hostile. The
real fix will be to make -working-dir work correctly, which will
take time to implement. Before that, the tooling library cannot
be used concurrently.
llvm-svn: 156299
|
| |
|
|
| |
llvm-svn: 156298
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
overload candidate, and include its message in any subsequent 'candidate not
viable due to substitution failure' note we may produce.
To keep the note small (since the 'overload resolution failed' diagnostics are
often already very verbose), the text of the SFINAE diagnostic is included as
part of the text of the note, and any notes which were attached to it are
discarded.
There happened to be spare space in OverloadCandidate into which a
PartialDiagnosticAt could be squeezed, and this patch goes to lengths to avoid
unnecessary PartialDiagnostic copies, resulting in no slowdown that I could
measure. (Removal in passing of some PartialDiagnostic copies has resulted in a
slightly smaller clang binary overall.) Even on a torture test, I was unable to
measure a memory increase of above 0.2%.
llvm-svn: 156297
|
| |
|
|
|
|
| |
previously done for SSE builtins.
llvm-svn: 156296
|
| |
|
|
|
|
| |
Patch by Jack Carter.
llvm-svn: 156295
|
| |
|
|
|
|
| |
Patch by Jack Carter.
llvm-svn: 156294
|
| |
|
|
|
|
| |
Patch by Jack Carter.
llvm-svn: 156293
|
| |
|
|
|
|
| |
Patch by Jack Carter.
llvm-svn: 156292
|
| |
|
|
|
|
|
|
|
|
| |
so that we actually accumulate all the delayed diagnostics. Do
this so that we can restore those diagnostics to good standing
if it turns out that we were wrong to suppress, e.g. if the
tag specifier is actually an elaborated type specifier and not
a declaration.
llvm-svn: 156291
|
| |
|
|
| |
llvm-svn: 156290
|
| |
|
|
|
|
|
| |
separate pools owned by the RAII objects that keep pushing
decl state. This gives us quite a bit more flexibility.
llvm-svn: 156289
|
| |
|
|
| |
llvm-svn: 156288
|
| |
|
|
| |
llvm-svn: 156287
|
| |
|
|
|
|
|
|
|
| |
- Two new tests (one for each property), require libclang built from r155858 or later to pass
- New test utility function (get_cursors) that gets all the nodes with a specific spelling.
Patch by Evan Pipho.
llvm-svn: 156286
|
| |
|
|
|
|
| |
Patch by Jack Carter.
llvm-svn: 156285
|
| |
|
|
|
|
| |
Patch by Jack Carter.
llvm-svn: 156284
|
| |
|
|
|
|
| |
Patch by Jack Carter.
llvm-svn: 156283
|
| |
|
|
| |
llvm-svn: 156282
|
| |
|
|
| |
llvm-svn: 156281
|
| |
|
|
|
|
| |
Patch by Jack Carter.
llvm-svn: 156280
|
| |
|
|
|
|
|
|
| |
from the previous 2 patches.
Patch by Jack Carter.
llvm-svn: 156279
|
| |
|
|
|
|
| |
Patch by Jack Carter.
llvm-svn: 156278
|
| |
|
|
|
|
|
|
|
| |
non-floating point general registers allow 8 and 16-bit
elements.
Patch by Jack Carter.
llvm-svn: 156277
|
| |
|
|
| |
llvm-svn: 156276
|
| |
|
|
| |
llvm-svn: 156275
|
| |
|
|
|
|
|
|
|
| |
in-class initializer for one of its fields. Value-initialization of such
a type should use the in-class initializer!
The former was just a bug, the latter is a (reported) standard defect.
llvm-svn: 156274
|
| |
|
|
| |
llvm-svn: 156273
|
| |
|
|
|
|
| |
function-style cast. Fixed PR12658.
llvm-svn: 156271
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
handle mixed-type operations more generally.
The logical change is that the integers in SymIntExprs may not have the same type as the symbols they are paired with. This was already the case with taint-propagation expressions created by SValBuilder::makeSymExprValNN, but I think those integers may never have been used. SimpleSValBuilder should be able to handle mixed-integer-type SymIntExprs fine now, though, and the constraint managers were already being defensive (though not entirely correct). All existing tests pass.
The logic in evalBinOpNN has been simplified so that conversion is done as late as possible. As a result, most of the switch cases have been reduced to do the minimal amount of work, delegating to another case when they can by substituting ConcreteInts and (as before) reversing the left and right arguments when useful.
Comparisons require special handling in two places (building SymIntExprs and evaluating constant-constant operations) because we don't /know/ the best type for comparing the two values. I've approximated the rules in Sema [C99 6.3.1.8] but it'd be nice to refactor Sema's actual algorithm into ASTContext.
This is also groundwork for handling mixed-type constraints better than we do now.
llvm-svn: 156270
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
for having a uniform logic for adding attributes to a decl. This in turn
is needed to fix the FIXME:
// FIXME: This needs to happen before we merge declarations. Then,
// let attribute merging cope with attribute conflicts.
ProcessDeclAttributes(S, NewFD, D,
/*NonInheritable=*/false, /*Inheritable=*/true);
The idea is that mergeAvailabilityAttr will become a method. Once attributes
are processed before merging, it will be called from handleAvailabilityAttr to
handle multiple attributes in one decl:
void f(int) __attribute__((availability(ios,deprecated=3.0),
availability(ios,introduced=2.0)));
and from SemaDecl.cpp to handle multiple decls:
void f(int) __attribute__((availability(ios,deprecated=3.0)));
void f(int) __attribute__((availability(ios,introduced=2.0)));
As a bonus, use the new structure to diagnose incompatible availability
attributes added to different decls (see included testcases).
llvm-svn: 156269
|
| |
|
|
|
|
| |
Simplify some of the decode functions.
llvm-svn: 156268
|
| |
|
|
|
|
| |
looked through for DAG combine purposes.
llvm-svn: 156266
|
| |
|
|
| |
llvm-svn: 156265
|