| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 59537
|
| |
|
|
|
|
| |
suite with clang.
llvm-svn: 59536
|
| |
|
|
|
|
|
|
| |
- PR3094.
- No test case, ccc is not really a supported product (llvmc2 already
got this right).
llvm-svn: 59535
|
| |
|
|
| |
llvm-svn: 59534
|
| |
|
|
| |
llvm-svn: 59533
|
| |
|
|
| |
llvm-svn: 59532
|
| |
|
|
| |
llvm-svn: 59531
|
| |
|
|
|
|
|
|
| |
SCALAR_TO_VECTOR. I didn't add the testcase, because
once llc gets past scalar-to-vector it hits a SPU target
lowering bug and explodes.
llvm-svn: 59530
|
| |
|
|
|
|
|
|
|
|
|
| |
Use it to safely handle less-than-or-equals-to exit conditions in loops. These
also occur when the loop exit branch is exit on true because SCEV inverses the
icmp predicate.
Use it again to handle non-zero strides, but only with an unsigned comparison
in the exit condition.
llvm-svn: 59528
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
DeclRefExprs and BlockDeclRefExprs into a single function
Sema::ActOnDeclarationNameExpr, eliminating a bunch of duplicate
lookup-name-and-check-the-result code.
Note that we still have the three parser entry points for identifiers,
operator-function-ids, and conversion-function-ids, since the parser
doesn't (and shouldn't) know about DeclarationNames. This is a Good
Thing (TM), and there will be more entrypoints coming (e.g., for C++
pseudo-destructor expressions).
llvm-svn: 59527
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
operator+, directly, using the same mechanism as all other special
names.
Removed the "special" identifiers for the overloaded operators from
the identifier table and IdentifierInfo data structure. IdentifierInfo
is back to representing only real identifiers.
Added a new Action, ActOnOperatorFunctionIdExpr, that builds an
expression from an parsed operator-function-id (e.g., "operator
+"). ActOnIdentifierExpr used to do this job, but
operator-function-ids are no longer represented by IdentifierInfo's.
Extended Declarator to store overloaded operator names.
Sema::GetNameForDeclarator now knows how to turn the operator
name into a DeclarationName for the overloaded operator.
Except for (perhaps) consolidating the functionality of
ActOnIdentifier, ActOnOperatorFunctionIdExpr, and
ActOnConversionFunctionExpr into a common routine that builds an
appropriate DeclRefExpr by looking up a DeclarationName, all of the
work on normalizing declaration names should be complete with this
commit.
llvm-svn: 59526
|
| |
|
|
| |
llvm-svn: 59523
|
| |
|
|
| |
llvm-svn: 59522
|
| |
|
|
|
|
| |
whole array to a single value (for example, UnknownVal, UndefinedVal).
llvm-svn: 59521
|
| |
|
|
| |
llvm-svn: 59519
|
| |
|
|
| |
llvm-svn: 59518
|
| |
|
|
|
|
|
| |
encoded on 32 bytes, and the personality function is not encoded as
relative.
llvm-svn: 59516
|
| |
|
|
| |
llvm-svn: 59515
|
| |
|
|
|
|
| |
when softening FNEG.
llvm-svn: 59513
|
| |
|
|
| |
llvm-svn: 59512
|
| |
|
|
|
|
| |
methods.
llvm-svn: 59511
|
| |
|
|
| |
llvm-svn: 59510
|
| |
|
|
|
|
|
|
|
| |
and let the clients push whatever they want into the DiagnosticInfo
instead of hard coding a few forms. Also switch various clients to
use Diag(Tok, ...) instead of Diag(Tok.getLocation(), ...) as the
canonical form to simplify the code a bit.
llvm-svn: 59509
|
| |
|
|
|
|
| |
invalid expr/stmt, etc.
llvm-svn: 59508
|
| |
|
|
|
|
| |
is destructive.
llvm-svn: 59507
|
| |
|
|
| |
llvm-svn: 59506
|
| |
|
|
| |
llvm-svn: 59505
|
| |
|
|
| |
llvm-svn: 59504
|
| |
|
|
| |
llvm-svn: 59503
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
are formed. In particular, a diagnostic with all its strings and ranges is now
packaged up and sent to DiagnosticClients as a DiagnosticInfo instead of as a
ton of random stuff. This has the benefit of simplifying the interface, making
it more extensible, and allowing us to do more checking for things like access
past the end of the various arrays passed in.
In addition to introducing DiagnosticInfo, this also substantially changes how
Diagnostic::Report works. Instead of being passed in all of the info required
to issue a diagnostic, Report now takes only the required info (a location and
ID) and returns a fresh DiagnosticInfo *by value*. The caller is then free to
stuff strings and ranges into the DiagnosticInfo with the << operator. When
the dtor runs on the DiagnosticInfo object (which should happen at the end of
the statement), the diagnostic is actually emitted with all of the accumulated
information. This is a somewhat tricky dance, but it means that the
accumulated DiagnosticInfo is allowed to keep pointers to other expression
temporaries without those pointers getting invalidated.
This is just the minimal change to get this stuff working, but this will allow
us to eliminate the zillions of variant "Diag" methods scattered throughout
(e.g.) sema. For example, instead of calling:
Diag(BuiltinLoc, diag::err_overload_no_match, typeNames,
SourceRange(BuiltinLoc, RParenLoc));
We will soon be able to just do:
Diag(BuiltinLoc, diag::err_overload_no_match)
<< typeNames << SourceRange(BuiltinLoc, RParenLoc));
This scales better to support arbitrary types being passed in (not just
strings) in a type-safe way. Go operator overloading?!
llvm-svn: 59502
|
| |
|
|
| |
llvm-svn: 59499
|
| |
|
|
|
|
| |
Use mutable to make it so.
llvm-svn: 59498
|
| |
|
|
|
|
| |
delete huge trailing whitespace to fit in 80 cols.
llvm-svn: 59497
|
| |
|
|
|
|
|
|
|
| |
- Use less indentation in coding.
- Shorten description.
- Update comments.
- Move code around
llvm-svn: 59496
|
| |
|
|
| |
llvm-svn: 59495
|
| |
|
|
|
|
|
|
| |
strings instead of array of strings. This reduces string copying
in some not-very-important cases, but paves the way for future
improvements.
llvm-svn: 59494
|
| |
|
|
| |
llvm-svn: 59493
|
| |
|
|
| |
llvm-svn: 59492
|
| |
|
|
| |
llvm-svn: 59491
|
| |
|
|
| |
llvm-svn: 59490
|
| |
|
|
| |
llvm-svn: 59489
|
| |
|
|
|
|
| |
a SelectionDAG*.
llvm-svn: 59488
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Running /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/test/CodeGen/XCore/dg.exp ...
FAIL: /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/test/CodeGen/XCore/fneg.ll
Failed with signal(SIGABRT) at line 1
while running: llvm-as < /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/test/CodeGen/XCore/fneg.ll | llc -march=xcore > fneg.ll.tmp1.s
Assertion failed: (VT.isFloatingPoint() && "Cannot create integer FP constant!"), function getConstantFP, file /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/lib/CodeGen/SelectionDAG/SelectionDAG.cpp, line 913.
0 llc 0x0092115c _ZN4llvm3sys18RemoveFileOnSignalERKNS0_4PathEPSs + 844
1 libSystem.B.dylib 0x9217809b _sigtramp + 43
2 ??? 0xffffffff 0x0 + 4294967295
3 libSystem.B.dylib 0x921f0ec2 raise + 26
4 libSystem.B.dylib 0x9220047f abort + 73
5 libSystem.B.dylib 0x921f2063 __assert_rtn + 101
6 llc 0x005a5b0a _ZN4llvm12SelectionDAG13getConmake[1]: *** [check-local] Error 1
make: *** [check] Error 2
llvm-svn: 59487
|
| |
|
|
|
|
|
|
|
| |
- Add static method to test if the current lexer is a non-macro/non-pragma
lexer.
- Refactor some code in PPLexerChange to use this static method.
- No performance change.
llvm-svn: 59486
|
| |
|
|
| |
llvm-svn: 59485
|
| |
|
|
| |
llvm-svn: 59484
|
| |
|
|
| |
llvm-svn: 59483
|
| |
|
|
| |
llvm-svn: 59482
|
| |
|
|
| |
llvm-svn: 59480
|
| |
|
|
|
|
|
| |
Performance tests on Cocoa.h (using the regular Lexer) shows no performance
difference.
llvm-svn: 59479
|