| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This involves keeping track of three separate types: the symbol type, the
adjustment type, and the comparison type. For example, in "$x + 5 > 0ULL",
if the type of $x is 'signed char', the adjustment type is 'int' and the
comparison type is 'unsigned long long'. Most of the time these three types
will be the same, but we should still do the right thing when the
comparison value is out of range, and wraparound should be calculated in
the adjustment type.
This also re-disables an out-of-bounds test; we were extracting the symbol
from non-additive SymIntExprs, but then throwing away the integer.
Sorry for the large patch; both the basic and range constraint managers needed
to be updated together, since they share code in SimpleConstraintManager.
llvm-svn: 156361
|
| |
|
|
|
|
|
|
| |
No functionality change.
There are more parts of the analyzer that could use the convenience of APSIntType, particularly the constraint engine, but that needs a fair amount of rewriting to handle mixed-type constraints anyway.
llvm-svn: 156360
|
| |
|
|
| |
llvm-svn: 156359
|
| |
|
|
| |
llvm-svn: 156358
|
| |
|
|
| |
llvm-svn: 156357
|
| |
|
|
|
|
|
|
| |
Switch over to the "*-apple-macosx" for desktop and "*-apple-ios" for iOS triples.
Also make the selection process for auto selecting platforms based off of an arch much better.
llvm-svn: 156354
|
| |
|
|
|
|
| |
rdar://11357807
llvm-svn: 156352
|
| |
|
|
| |
llvm-svn: 156350
|
| |
|
|
| |
llvm-svn: 156349
|
| |
|
|
| |
llvm-svn: 156348
|
| |
|
|
|
|
|
|
| |
a given entity, so that we can tell when the entity was
introduced/deprecated/obsoleted on each platform for which we have an
annotation. Addresses <rdar://problem/11365715>.
llvm-svn: 156347
|
| |
|
|
|
|
| |
references (thus extending their lifetime).
llvm-svn: 156346
|
| |
|
|
|
|
| |
No functional change.
llvm-svn: 156345
|
| |
|
|
|
|
| |
Thumb branch operands.
llvm-svn: 156344
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
match gcc behavior for two conflicting visibilities in the same decl. It also
makes handling of dllimport/dllexport more natural.
As a bonus we now warn on the dllimport in
void __attribute__((dllimport)) foo13();
void __attribute__((dllexport)) foo13();
as does gcc.
llvm-svn: 156343
|
| |
|
|
| |
llvm-svn: 156342
|
| |
|
|
| |
llvm-svn: 156341
|
| |
|
|
| |
llvm-svn: 156340
|
| |
|
|
|
|
| |
data-recursive for statements.
llvm-svn: 156339
|
| |
|
|
|
|
|
|
|
|
| |
Correctly specify the LLDB_OPT_SET's that the 'shlib' command option belongs to by using a newly added macro like this:
#define LLDB_OPT_NOT_10 ( LLDB_OPT_SET_FROM(1, 10) & ~LLDB_OPT_SET_10 )
rdar://problem/11393864
llvm-svn: 156337
|
| |
|
|
|
|
|
|
|
|
|
|
| |
failed sessions whose filenames contain the component(s)
specified. For example:
./redo.py -F x86_64 -n 2012-05-07-15_28_24
will redo the failed sessions under the 2012-05-07-15_28_24 directory, but only for session names which contain 'x86_64' in it.
llvm-svn: 156335
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
At least some of them:
%vreg1:sub_16bit = COPY %vreg2:sub_16bit; GR64:%vreg1, GR32: %vreg2
Previously, we couldn't figure out that the above copy could be
eliminated by coalescing %vreg2 with %vreg1:sub_32bit.
The new getCommonSuperRegClass() hook makes it possible.
This is not very useful yet since the unmodified part of the destination
register usually interferes with the source register. The coalescer
needs to understand sub-register interference checking first.
llvm-svn: 156334
|
| |
|
|
| |
llvm-svn: 156333
|
| |
|
|
| |
llvm-svn: 156331
|
| |
|
|
|
|
|
|
| |
BodyIndexer::TraverseCXXOperatorCallExpr".
It was reverted on r156253.
llvm-svn: 156330
|
| |
|
|
|
|
|
|
|
|
| |
This is temporary until we settle on how to make the main RecursiveASTVisitor safe.
There are some modifications on the original version, to avoid extreme memory usage
when compiling for release.
rdar://11179167
llvm-svn: 156329
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
The getPointerRegClass() hook can return register classes that depend on
the calling convention of the current function (ptr_rc_tailcall).
So far, we have been able to infer the calling convention from the
subtarget alone, but as we add support for multiple calling conventions
per target, that no longer works.
Patch by Yiannis Tsiouris!
llvm-svn: 156328
|
| |
|
|
|
|
| |
Test cases for this code are coming. It is not used for anything yet.
llvm-svn: 156327
|
| |
|
|
| |
llvm-svn: 156326
|
| |
|
|
| |
llvm-svn: 156325
|
| |
|
|
| |
llvm-svn: 156324
|
| |
|
|
|
|
| |
order of their operands across instructions. This allows for greater CSE opportunities.
llvm-svn: 156323
|
| |
|
|
|
|
|
|
|
| |
After discussion with several people, including Doug Gregor, we've
decided to change our approach here. If you have questions about this
header file, the commit removing it, etc., please reach out to me
off-list.
llvm-svn: 156322
|
| |
|
|
|
|
| |
once -fbounds-checking patch gets in
llvm-svn: 156321
|
| |
|
|
|
|
|
|
|
|
| |
SValBuilder should return an UnknownVal() when comparison of int and ptr
fails. Previous to this commit, it went on assuming that we are dealing
with pointer arithmetic.
PR12509, radar://11390991
llvm-svn: 156320
|
| |
|
|
|
|
|
|
|
|
|
|
| |
optional library support to the llvm-build tool:
- Add new command line parameter to llvm-build: “--enable-optional-libraries”
- Add handing of new llvm-build library type “OptionalLibrary”
- Update Cmake and automake build systems to pass correct flags to llvm-build
based on configuration
Patch by Dan Malea!
llvm-svn: 156319
|
| |
|
|
|
|
| |
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
|