- Jun 15, 2009
-
-
Daniel Dunbar authored
- p13 and p14 are important failures. llvm-svn: 73392
-
Anders Carlsson authored
llvm-svn: 73391
-
Douglas Gregor authored
its (possibly-remapped) diagnostics. Thanks, Chris! llvm-svn: 73390
-
Douglas Gregor authored
llvm-svn: 73389
-
Daniel Dunbar authored
- Failing, at least in part, because lookup in parser is finding a friend function where it shouldn't. llvm-svn: 73388
-
Arnold Schwaighofer authored
incomming chain of the RETURN node. The incomming chain must be the outgoing chain of the CALL node. This causes the backend to identify tail calls that are not tail calls. This patch fixes this. llvm-svn: 73387
-
Zhongxing Xu authored
llvm-svn: 73386
-
Torok Edwin authored
generator! llvm-svn: 73385
-
Rafael Espindola authored
Look for as in the path. Doing it here instead of llvm-gcc because llvm-gcc has nothing as convenient as sys::Program::FindProgramByName. llvm-svn: 73383
-
Eli Friedman authored
unnecessary, this was causing issues for assembler-with-cpp mode, which doesn't process the directive. llvm-svn: 73382
-
Evan Cheng authored
- Change register allocation hint to a pair of unsigned integers. The hint type is zero (which means prefer the register specified as second part of the pair) or entirely target dependent. - Allow targets to specify alternative register allocation orders based on allocation hint. Part 2. - Use the register allocation hint system to implement more aggressive load / store multiple formation. - Aggressively form LDRD / STRD. These are formed *before* register allocation. It has to be done this way to shorten live interval of base and offset registers. e.g. v1025 = LDR v1024, 0 v1026 = LDR v1024, 0 => v1025,v1026 = LDRD v1024, 0 If this transformation isn't done before allocation, v1024 will overlap v1025 which means it more difficult to allocate a register pair. - Even with the register allocation hint, it may not be possible to get the desired allocation. In that case, the post-allocation load / store multiple pass must fix the ldrd / strd instructions. They can either become ldm / stm instructions or back to a pair of ldr / str instructions. This is work in progress, not yet enabled. llvm-svn: 73381
-
Chris Lattner authored
llvm-svn: 73380
-
Chris Lattner authored
Patch by Benjamin Kramer! llvm-svn: 73379
-
Chris Lattner authored
ranges more similar to the console output. Consider: #define FOO(X, Y) X/ Y void foo(int *P, int *Q) { FOO(P, Q); } Before we emitted: t.c:4:3:{4:3-4:6}{4:3-4:6}: error: invalid operands to binary expression ('int *' and 'int *') FOO(P, Q); ^~~~~~~~~ ... Note that while we underline the macro args that the range info just includes FOO without its macros. This change teaches the printed ranges to include macro args also so that we get: t.c:4:3:{4:3-4:12}{4:3-4:12}: error: invalid operands to binary expression ('int *' and 'int *') FOO(P, Q); ^~~~~~~~~ ... This fixes rdar://6939599 llvm-svn: 73378
-
Chris Lattner authored
the file at the point of the pragma. This allows clang to know that all sourcelocations after the pragma are in a system header. llvm-svn: 73376
-
Chris Lattner authored
llvm-svn: 73375
-
Chris Lattner authored
llvm-svn: 73374
-
Chris Lattner authored
llvm-svn: 73373
-
Chris Lattner authored
llvm-svn: 73372
-
Chris Lattner authored
like: fatal error: could not find file '1.h' referenced by PCH file instead of aborting with an assertion failure, PR4219 llvm-svn: 73371
-
Chris Lattner authored
llvm-svn: 73370
-
Chris Lattner authored
llvm-svn: 73369
-
Chris Lattner authored
absolute or not, based on a patch by Gregory Curfman! llvm-svn: 73368
-
Chris Lattner authored
llvm-svn: 73367
-
Chris Lattner authored
llvm-svn: 73366
-
Chris Lattner authored
can occur in the middle of comment tokens. llvm-svn: 73365
-
Chris Lattner authored
"GCC emits an __objc_class_name_{classname} symbol for every class, and a corresponding reference to this symbol for every compilation unit that references the class. This causes linker errors when you try linking a program which references some classes but doesn't define them. The attached patch implements this support in clang, so you can compile a class with clang, reference it in a file compiled with GCC, and have it all work correctly." Patch by David Chisnall! llvm-svn: 73364
-
Dan Gohman authored
llvm-svn: 73362
-
Dan Gohman authored
they contain multiplications of constants with add operations. This helps simplify several kinds of things; in particular it helps simplify expressions like ((-1 * (%a + %b)) + %a) to %b, as expressions like this often come up in loop trip count computations. llvm-svn: 73361
-
Dan Gohman authored
used as keys in DenseMaps. llvm-svn: 73360
-
Dan Gohman authored
the potentially expensive erase. llvm-svn: 73359
-
Dan Gohman authored
even though the order doesn't matter at the top level of an expression, it does matter when the constant is a subexpression of an n-ary expression, because n-ary expressions are sorted lexicographically. llvm-svn: 73358
-
Dan Gohman authored
SmallVector instead of std::vector. llvm-svn: 73357
-
Eli Friedman authored
like "int x = + +3;". llvm-svn: 73356
-
Dan Gohman authored
llvm-svn: 73355
-
Duncan Sands authored
llvm-svn: 73353
-
- Jun 14, 2009
-
-
Eli Friedman authored
static intializers for structs. llvm-svn: 73349
-
Evan Cheng authored
Move register allocation preference (or hint) from LiveInterval to MachineRegisterInfo. This allows more passes to set them. llvm-svn: 73346
-
Fariborz Jahanian authored
Patch by Jean-Daniel Dupas llvm-svn: 73343
-
Torok Edwin authored
llvm-svn: 73342
-