- Nov 17, 2010
-
-
Zhongxing Xu authored
llvm-svn: 119491
-
Duncan Sands authored
simplified to itself (this can only happen in unreachable blocks). Change it to return null instead. Hopefully this will fix some buildbot failures. llvm-svn: 119490
-
Chris Lattner authored
of all the lines of the inline asm. With the refactoring and enhancement of the backend, we can now reports errors on the correct source line when an asm contains multiple lines of text. For something like this: void foo() { asm("push %rax\n" ".code32\n"); } we used to get this: (note that the line 4 in t.c isn't helpful) t.c:4:7: error: warning: ignoring directive for now asm("push %rax\n" ^ <inline asm>:2:1: note: instantiated into assembly here .code32 ^ now we get: t.c:5:8: error: warning: ignoring directive for now ".code32\n" ^ <inline asm>:2:1: note: instantiated into assembly here .code32 ^ Note that we're pointing to line 5 properly now. This implements rdar://7839391 - inline asm errors should point to the right line in the asm and makes the error message in PR8595 much less confusing. llvm-svn: 119489
-
Chris Lattner authored
SrcMgrDiagHandler, we can improve clang diagnostics for inline asm: instead of reporting them on a source line of the original line, we can report it on the correct line wherever the string literal came from. For something like this: void foo() { asm("push %rax\n" ".code32\n"); } we used to get this: (note that the line in t.c isn't helpful) t.c:4:7: error: warning: ignoring directive for now asm("push %rax\n" ^ <inline asm>:2:1: note: instantiated into assembly here .code32 ^ now we get: t.c:5:8: error: warning: ignoring directive for now ".code32\n" ^ <inline asm>:2:1: note: instantiated into assembly here .code32 ^ Note that we're pointing to line 5 properly now. llvm-svn: 119488
-
Chris Lattner authored
llvm-svn: 119487
-
Chris Lattner authored
cookie argument to the SourceMgr diagnostic stuff. This cleanly separates LLVMContext's inlineasm handler from the sourcemgr error handling definition, increasing type safety and cleaning things up. llvm-svn: 119486
-
Che-Liang Chiou authored
llvm-svn: 119485
-
Evan Cheng authored
llvm-svn: 119484
-
Chris Lattner authored
the cookie argument to setDiagHandler llvm-svn: 119483
-
Chris Lattner authored
llvm-svn: 119482
-
Chris Lattner authored
no longer depends on Preprocessor, so we can move it out of Sema into a nice new StringLiteral::getLocationOfByte method that can be used by any AST client. llvm-svn: 119481
-
Zhongxing Xu authored
llvm-svn: 119480
-
Chris Lattner authored
llvm-svn: 119479
-
Zhongxing Xu authored
llvm-svn: 119477
-
Chris Lattner authored
possible to create one without a preprocessor. llvm-svn: 119476
-
Chris Lattner authored
llvm-svn: 119475
-
Chris Lattner authored
Preprocessor to Lexer where they make more sense. llvm-svn: 119474
-
Chris Lattner authored
llvm-svn: 119472
-
Chris Lattner authored
llvm-svn: 119471
-
Chris Lattner authored
llvm-svn: 119470
-
Chris Lattner authored
llvm-svn: 119469
-
Chris Lattner authored
pushing the dependency on the preprocessor out a bit. llvm-svn: 119468
-
Marcin Swiderski authored
llvm-svn: 119467
-
Chris Lattner authored
llvm-svn: 119464
-
Chris Lattner authored
llvm-svn: 119463
-
Chris Lattner authored
llvm-svn: 119462
-
Bill Wendling authored
should get the submode from the load/store multiple instruction's opcode. llvm-svn: 119461
-
Bill Wendling authored
instructions have to distinguish between lists of single- and double-precision registers in order for the ASM matcher to do a proper job. In all other respects, a list of single- or double-precision registers are the same as a list of GPR registers. llvm-svn: 119460
-
Duncan Sands authored
class, uses DominatorTree which is an analysis. This change moves all of the tricky hasConstantValue logic to SimplifyInstruction, and replaces it with a very simple literal implementation. I already taught users of hasConstantValue that need tricky stuff to use SimplifyInstruction instead. I didn't update InlineFunction because the IR looks like it might be in a funky state at the point it calls hasConstantValue, which makes calling SimplifyInstruction dangerous since it can in theory do a lot of tricky reasoning. This may be a pessimization, for example in the case where all phi node operands are either undef or a fixed constant. llvm-svn: 119459
-
Duncan Sands authored
While there, add a note about an inefficiency I noticed. llvm-svn: 119458
-
Duncan Sands authored
rather than hasConstantValue. llvm-svn: 119457
-
Duncan Sands authored
systematically, CollapsePhi will always return null here. Note that CollapsePhi did an extra check, isSafeReplacement, which the SimplifyInstruction logic does not do. I think that check was bogus - I guess we will soon find out! (It was originally added in commit 41998 without a testcase). llvm-svn: 119456
-
Dan Gohman authored
This fixes some extreme compile times on unrolled sha512 code. llvm-svn: 119455
-
Dan Gohman authored
llvm-svn: 119454
-
Jim Ingham authored
with the Interrupted bit set. Process::HandlePrivateEvent ignores Interrupted events. DoHalt is changed to ensure that the stop even is processed, and an event with the Interrupted event is posted. Finally ClangFunction is rationalized to use this facility so the that Halt is handled more deterministically. llvm-svn: 119453
-
Ted Kremenek authored
'SizeOfAlignOfExpr' and 'CXXSCalarValueInitExpr' to data-recursion algorithm. llvm-svn: 119452
-
Douglas Gregor authored
@synthesize foo = _foo; keep track of the location of the ivar ("_foo"). Teach libclang to visit the ivar as a member reference. llvm-svn: 119447
-
Eric Christopher authored
operands in a variadic instruction. llvm-svn: 119446
-
Johnny Chen authored
output from clang and llvm-gcc compiled program; both generate the correct debug info with respect to the typedef scoped inside a namespace. Add a TestBase.getCompiler(self) method which returns the compiler in effect the test suite is now running with. Subclasses (like TestNamespace) can use it to distinguish among different compilers. llvm-svn: 119445
-
Ted Kremenek authored
data-recursion algorithm. llvm-svn: 119444
-