summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Reword the description of the noredzone attribute.Dan Gohman2009-06-151-2/+3
| | | | llvm-svn: 73394
* Revert r73341.Ted Kremenek2009-06-151-8/+8
| | | | llvm-svn: 73393
* More [basic.lookup.unqual] tests.Daniel Dunbar2009-06-155-0/+62
| | | | | | - p13 and p14 are important failures. llvm-svn: 73392
* Add a new 'Pack' argument kind to TemplateArgument. This is not yet used.Anders Carlsson2009-06-156-2/+73
| | | | llvm-svn: 73391
* Base SFINAE error suppression counting on the class of an error, notDouglas Gregor2009-06-152-19/+3
| | | | | | its (possibly-remapped) diagnostics. Thanks, Chris! llvm-svn: 73390
* Note that we've implemented the right angle brackets extension in C++0xDouglas Gregor2009-06-151-1/+8
| | | | llvm-svn: 73389
* Test for [basic.lookup.unqual]p3Daniel Dunbar2009-06-151-0/+26
| | | | | | | - Failing, at least in part, because lookup in parser is finding a friend function where it shouldn't. llvm-svn: 73388
* CheckTailCallReturnConstraints is missing a check on theArnold Schwaighofer2009-06-152-1/+19
| | | | | | | | | 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
* 'not magic' => 'is not magic'Zhongxing Xu2009-06-151-4/+5
| | | | llvm-svn: 73386
* x86_64 was completely missing from the target triples supported by the X86 codeTorok Edwin2009-06-151-0/+2
| | | | | | generator! llvm-svn: 73385
* Remove the gcc= option. llvm-gcc uses only as=Rafael Espindola2009-06-151-12/+5
| | | | | | | | 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
* PR4388: get rid of an extra # line directive; in addition to being Eli Friedman2009-06-151-5/+1
| | | | | | | unnecessary, this was causing issues for assembler-with-cpp mode, which doesn't process the directive. llvm-svn: 73382
* Part 1.Evan Cheng2009-06-1513-141/+613
| | | | | | | | | | | | | | | | | | | | | - 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
* fix testcase to properly check for the patch in r73195.Chris Lattner2009-06-151-1/+1
| | | | llvm-svn: 73380
* "This patch implements the method with the GetModuleFileName function for ↵Chris Lattner2009-06-151-1/+3
| | | | | | | | windows." Patch by Benjamin Kramer! llvm-svn: 73379
* Minor tweak to -fdiagnostics-print-source-range-info to make it printChris Lattner2009-06-151-2/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Fix #pragma GCC system_header by making it insert a virtual linemarker intoChris Lattner2009-06-153-2/+23
| | | | | | | 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
* rename testChris Lattner2009-06-151-0/+0
| | | | llvm-svn: 73375
* convert this test to -verify mode.Chris Lattner2009-06-151-2/+2
| | | | llvm-svn: 73374
* remove extraneous const qualifierChris Lattner2009-06-152-3/+2
| | | | llvm-svn: 73373
* I got J and K backward, many thanks to Eli for spotting this!Chris Lattner2009-06-151-2/+2
| | | | llvm-svn: 73372
* If PCH refers to a file that doesn't exist anymore, emit a nice errorChris Lattner2009-06-151-3/+10
| | | | | | | | like: fatal error: could not find file '1.h' referenced by PCH file instead of aborting with an assertion failure, PR4219 llvm-svn: 73371
* use the new Path::isAbsolute function, fixing a fixme. Patch by Gregory ↵Chris Lattner2009-06-151-3/+1
| | | | | | Curfman! llvm-svn: 73370
* remove some old CVS-specific arguments that don't work with SVN.Chris Lattner2009-06-151-1/+1
| | | | llvm-svn: 73369
* add a new static method to portably determine whether a patch isChris Lattner2009-06-153-0/+27
| | | | | | absolute or not, based on a patch by Gregory Curfman! llvm-svn: 73368
* no really, add the lines :)Chris Lattner2009-06-151-1/+1
| | | | llvm-svn: 73367
* implement support for the 'K' asm constraint, PR4347Chris Lattner2009-06-151-0/+8
| | | | llvm-svn: 73366
* Fix PR2741 by making our newline tracking be aware of newlines thatChris Lattner2009-06-152-0/+39
| | | | | | can occur in the middle of comment tokens. llvm-svn: 73365
* "GCC emits an __objc_class_name_{classname} symbol for every class, and a ↵Chris Lattner2009-06-151-4/+29
| | | | | | | | 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
* Fix old-style type names in comments.Dan Gohman2009-06-1410-24/+24
| | | | llvm-svn: 73362
* Implement more aggressive folding of add operand lists whenDan Gohman2009-06-142-0/+166
| | | | | | | | | | 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
* Specialize DenseMapInfo for SCEVHandle, so that SCEVHandles can beDan Gohman2009-06-141-0/+28
| | | | | | used as keys in DenseMaps. llvm-svn: 73360
* Check for the short-circuiting condition before performingDan Gohman2009-06-141-1/+1
| | | | | | the potentially expensive erase. llvm-svn: 73359
* Do compare constant SCEV values in SCEVComplexityCompare, becauseDan Gohman2009-06-141-3/+12
| | | | | | | | 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
* Convert several parts of the ScalarEvolution framework to useDan Gohman2009-06-145-74/+80
| | | | | | SmallVector instead of std::vector. llvm-svn: 73357
* PR4391: Tweak -ast-print output to generate valid output for edge cases Eli Friedman2009-06-141-1/+7
| | | | | | like "int x = + +3;". llvm-svn: 73356
* Add another item to the list of things that indvars does.Dan Gohman2009-06-141-1/+4
| | | | llvm-svn: 73355
* Testcase for PR4332.Duncan Sands2009-06-141-0/+8
| | | | llvm-svn: 73353
* PR4390: Make sure to handle anonymous unions correctly while building Eli Friedman2009-06-142-5/+9
| | | | | | static intializers for structs. llvm-svn: 73349
* Move register allocation preference (or hint) from LiveInterval to ↵Evan Cheng2009-06-1411-42/+200
| | | | | | MachineRegisterInfo. This allows more passes to set them. llvm-svn: 73346
* Test modification.Fariborz Jahanian2009-06-141-3/+3
| | | | | | Patch by Jean-Daniel Dupas llvm-svn: 73343
* Fix CMake build. Patch from Ingmar Vanhassel.Torok Edwin2009-06-141-0/+1
| | | | llvm-svn: 73342
* fix the menu's linksNuno Lopes2009-06-141-8/+8
| | | | llvm-svn: 73341
* Add an early implementation of a partial inlining pass. The idea behind thisOwen Anderson2009-06-143-0/+177
| | | | | | | | | | is that, for functions whose bodies are entirely guarded by an if-statement, it can be profitable to pull the test out of the callee and into the caller. This code has had some cursory testing, but still has a number of known issues on the LLVM test suite. llvm-svn: 73338
* Introduce a SFINAE "trap" that keeps track of the number of errorsDouglas Gregor2009-06-143-3/+45
| | | | | | | | | | that were suppressed due to SFINAE. By checking whether any errors occur at the end of template argument deduction, we avoid the possibility of suppressing an error (due to SFINAE) and then recovering so well that template argument deduction never detects that there was a problem. Thanks to Eli for the push in this direction. llvm-svn: 73336
* Introduce new BinaryObject (blob) class, ELF Writer modified to use it. ↵Bruno Cardoso Lopes2009-06-147-258/+537
| | | | | | BinaryObject.h by Aaron Gray llvm-svn: 73333
* Update LLVM.Douglas Gregor2009-06-1416-39/+133
| | | | | | | | | | | | | | | | | | | | | | | | | | Implement support for C++ Substitution Failure Is Not An Error (SFINAE), which says that errors that occur during template argument deduction do *not* produce diagnostics and do not necessarily make a program ill-formed. Instead, template argument deduction silently fails. This is currently implemented for template argument deduction during matching of class template partial specializations, although the mechanism will also apply to template argument deduction for function templates. The scheme is simple: - If we are in a template argument deduction context, any diagnostic that is considered a SFINAE error (or warning) will be suppressed. The error will be propagated up the call stack via the normal means. - By default, all warnings and errors are SFINAE errors. Add the NoSFINAE class to a diagnostic in the .td file to make it a hard error (e.g., for access-control violations). Note that, to make this fully work, every place in Sema that emits an error *and then immediately recovers* will need to check Sema::isSFINAEContext() to determine whether it must immediately return an error rather than recovering. llvm-svn: 73332
* Add output of the SFINAE bit for Clang's diagnosticsDouglas Gregor2009-06-141-0/+6
| | | | llvm-svn: 73331
* Fix "for all intensive purposes" to "for all intents and purposes".Nick Lewycky2009-06-141-5/+5
| | | | llvm-svn: 73323
* PR4351: Add constant evaluation for constructs like "foo == NULL", where Eli Friedman2009-06-142-8/+31
| | | | | | foo has a constant address. llvm-svn: 73321
OpenPOWER on IntegriCloud