summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Replace vectors with arrays.Benjamin Kramer2011-10-153-69/+73
| | | | llvm-svn: 142072
* Neither 'Warning' nor 'NonNote' was a good name for this location...Chandler Carruth2011-10-152-14/+15
| | | | | | | It's the last include-stack-root we tried to walk up. Use a better name and better doxyments for it. llvm-svn: 142071
* Nuke a bunch of FIXMEs that are now fixed. =] Also, remove the now-deadChandler Carruth2011-10-151-8/+3
| | | | | | | | | TextDiagnosticPrinter argument to the TextDiagnostic helper class. This cements the proper ordering of things: TextDiagnostic is now a viable stand-alone class for emitting pretty-printed textual diagnostics to a terminal. llvm-svn: 142070
* Sink the include stack printing into the generic text diagnosticChandler Carruth2011-10-152-55/+50
| | | | | | | | | | | | | | | utility. This is a particularly nice win because it removes a pile of parameters from these routines. Also name them a bit better. I'm trying to follow the pattern of 'emit' routines writing directly to what is expected to be the final output, while 'print' routines take a output stream argument and can be used to build up intermediate buffers, etc. Also, fix a bug I spotted by inspection from my last commit where 'LastLoc' and 'LastNonNoteLoc' were reversed. It's really scary that this didn't trigger a single test failure. Will be working on tests for more of this functionality now. llvm-svn: 142069
* Rationalize some of how the locations of prior diagnostics are trackedChandler Carruth2011-10-152-13/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | across emissions. 1) The include stack printing is conditioned on non-note diagnostics, not just on warning diagnostics. 2) Those should be full source locations as they're tied to a source manager. 3) We should pass in the prior state to the TextDiagnostic constructor, allow it to mutate as diagnostics are emitted, and then cache the final state before tearing it down. Some of this remains incomplete, specifically #3 isn't finished for the non-note location. That'll come when the include stack printing sinks down a level. This also highlights how *completely* bug-ridden this code is. For example, we currently do all these comparisons of a FullSourceLoc and a SourceLocation... which silently does a SourceLocation to SourceLocation comparison, completely disregarding the source manager from whence one of the arguments came. Oops! Good thing in practice this wasn't important, but it could in theory be suppressing caret diagnostics in a second TU on a single clang invocation. I'm hoping to hammer these bugs out as the refactorings occur, although for so many of them it's really unlikely I can dream up a test case that would show the potentially buggy behavior. llvm-svn: 142067
* Don't replace all dominated uses if there is only one use, since thatDuncan Sands2011-10-151-4/+9
| | | | | | use can't be dominated, saving one domtree lookup. llvm-svn: 142066
* Sink the EmitDiagnosticLoc method down to the generic TextDiagnosticChandler Carruth2011-10-152-115/+108
| | | | | | interface now that its only caller is there. llvm-svn: 142065
* Sink the non-caret diagnostic logic down and out of the diagnosticChandler Carruth2011-10-152-276/+281
| | | | | | | | | | | | | consumer. The TextDiagnostic interface now has a generic entry point for emitting a diagnostic which uses a minimal interface that should be compatible with StoredDiagnostics such as are available in libclang etc. Some unfortunate shuffling of static functions as things get relocated. Also some unfortunate public interface points added to TextDiagnosticPrinter, but those are the next bits to get moved so they won't last long. llvm-svn: 142064
* Simplify the interface of a helper method in the TextDiagnosticPrinterChandler Carruth2011-10-152-21/+22
| | | | | | | | | | | to operate directly on the source location and ranges associated with a diagnostic rather than digging them out of the diagnostic. This had a side benefit of cleaning up its code a tiny bit by using the ArrayRef interface. No functionality changed. llvm-svn: 142063
* Add an accessor for all of the ranges in a diagnostic as an ArrayRef.Chandler Carruth2011-10-151-0/+5
| | | | | | | This will simplify a number of calls in the diagnostic printing going forward. llvm-svn: 142062
* Add a bad char heuristic to StringRef::find.Benjamin Kramer2011-10-152-3/+32
| | | | | | | | | Based on Horspool's simplified version of Boyer-Moore. We use a constant-sized table of uint8_ts to keep cache thrashing low, needles bigger than 255 bytes are uncommon anyways. The worst case is still O(n*m) but we do a lot better on the average case now. llvm-svn: 142061
* Move the legalization of vector loads and stores into LegalizeVectorOps. In someNadav Rotem2011-10-152-183/+123
| | | | | | cases we need the second type-legalization pass in order to support all cases. llvm-svn: 142060
* Fix SCEVExpander assert during LSR: "argument of incompatible type".Andrew Trick2011-10-153-8/+33
| | | | | | | | | Just because we're dealing with a GEP doesn't mean we can assert the SCEV has a pointer type. The fix is simply to ignore the SCEV pointer type, which we really didn't need. Fixes PR11138 webkit crash. llvm-svn: 142058
* Add -Wc++98-compat warning for deduced 'auto' type specifier.Richard Smith2011-10-153-1/+9
| | | | llvm-svn: 142057
* Implement -Wc++98-compat warnings for the parser.Richard Smith2011-10-1511-50/+206
| | | | llvm-svn: 142056
* Revert r142046, "Fix for llvm::sys::getHostTriple on Windows. Instead of ↵NAKAMURA Takumi2011-10-151-36/+4
| | | | | | | | | | relying on the triple" It extremely breaks builds when optimization is enabled. Twine should not hold temporary objects. By the way, I might feel sad if I saw "i786-" "i1586-" or "iF86-". llvm-svn: 142055
* Refactor: remove redundant check for 'final' specifier when parsing ↵Richard Smith2011-10-151-13/+4
| | | | | | class/struct definition. llvm-svn: 142054
* Testcase for half of r142048.Richard Smith2011-10-151-0/+5
| | | | llvm-svn: 142053
* Convert stray doxygen comments to regular comments. They logically ↵Ted Kremenek2011-10-151-9/+9
| | | | | | represent the fields in FunctionProtoType. llvm-svn: 142052
* Revert "Move doxygen comments to pair with the actual values."Ted Kremenek2011-10-151-9/+13
| | | | | | | John convinced me this wasn't the right thing to do. I'll follow up with a second commit to make these non-doxygen comments. llvm-svn: 142051
* Use of override keywords in C++98 should produce a warning by default.Richard Smith2011-10-152-1/+9
| | | | llvm-svn: 142050
* Rename an ExtWarn to ext_ for consistency.Richard Smith2011-10-152-2/+2
| | | | llvm-svn: 142049
* Don't warn about use of 'final' in ill-formed C++98 code which didn't useRichard Smith2011-10-152-4/+5
| | | | | | | 'final', and don't accept (then silently discard) braced init lists in C++98 new-expressions. llvm-svn: 142048
* Handle an edge case involving the conditional operator and throw ↵Eli Friedman2011-10-152-5/+17
| | | | | | expressions. PR10582. llvm-svn: 142047
* Fix for llvm::sys::getHostTriple on Windows. Instead of relying on the tripleChad Rosier2011-10-151-4/+36
| | | | | | | | from config.h, it discovers the triple based on the execution environment. Patch by Aaron Ballman <aaron@aaronballman.com> llvm-svn: 142046
* ToT is now for 3.1.Bill Wendling2011-10-152-10/+10
| | | | llvm-svn: 142044
* Windows/Memory.inc: Support the ability to allocate memory "near" another ↵NAKAMURA Takumi2011-10-151-2/+7
| | | | | | | | block of memory on Win32. It has fixed FIXME. Thanks to Aaron Ballman! llvm-svn: 142039
* Fix indvars randomness by removing iteration over a map.Andrew Trick2011-10-151-12/+12
| | | | | | | | | | | | | I rewrote the algorithm a while back so it doesn't require map lookup, but neglected to change the data structure. This was caught by llvm-gcc self host, not because there's anything special about llvm-gcc, but because it is the only test for nondeterminism we currently have. Unit tests don't work well for everything; we should always try to have a nondeterminism stress test running. Fixes PR11133: llvm-gcc self host .o mismatch after enable-iv-rewrite=false llvm-svn: 142036
* Change 'Emit' to 'EmitCaret' which sums up what it *should* be doing.Chandler Carruth2011-10-151-6/+9
| | | | | | | | Also note that it is actually doing much more than it should. This paves the way for building a more generic 'Emit' routine that is the real entry point here. llvm-svn: 142035
* -Wc++98-compat warnings for the lexer.Richard Smith2011-10-159-8/+81
| | | | | | | | This also adds a -Wc++98-compat-pedantic for warning on constructs which would be diagnosed by -std=c++98 -pedantic (that is, it warns even on C++11 features which we enable by default, with no warning, in C++98 mode). llvm-svn: 142034
* Handled the call operator properly.Sean Callanan2011-10-151-3/+8
| | | | llvm-svn: 142033
* Clear out the landing pad to call site map for each function.Bill Wendling2011-10-151-0/+1
| | | | | | | This isn't put into the 'clear()' method because the information needs to stick around (at least for a little bit) after the selection DAG is built. llvm-svn: 142032
* Make "next" and "step-out" work when in stepping over or out of inlined ↵Jim Ingham2011-10-152-39/+213
| | | | | | functions. llvm-svn: 142031
* Mark tADDrSPi as having side effects again.Jakob Stoklund Olesen2011-10-151-3/+3
| | | | | | | | | | | It really doesn't, but when r141929 removed the hasSideEffects flag from this instruction, it caused miscompilations. I am guessing that it got moved across a stack pointer update. Also clear isRematerializable after checking that this instruction is in fact never rematerialized in the nightly test suite. llvm-svn: 142030
* Mention some of the improvements in Clang 3.0 over 2.9.Douglas Gregor2011-10-151-0/+15
| | | | llvm-svn: 142029
* Thumb1 does not support dynamic stack realignment.Chad Rosier2011-10-151-0/+5
| | | | | | | | | | | rdar://10288916 is tracking this fix. In the past, instcombine and other passes were promoting alloca alignment past the natural alignment, resulting in dynamic stack realignment. Lang's work now prevents this from happening (LLVM commit r141599). Now that this really shouldn't happen report a fatal error rather than silently generate bad code. llvm-svn: 142028
* Mark registers as DEAD because they're really just clobbers.Bill Wendling2011-10-151-1/+1
| | | | llvm-svn: 142027
* Make the step range plans capable of supporting multiple ranges. Also make ↵Jim Ingham2011-10-156-23/+70
| | | | | | their constructors public, there isn't any good reason why you shouldn't be able to make these plans. llvm-svn: 142026
* Make the "log enable lldb-step" output easier to parse.Jim Ingham2011-10-152-33/+60
| | | | llvm-svn: 142025
* Quiet the default "log enable lldb step" output down a little bit.Jim Ingham2011-10-152-4/+4
| | | | llvm-svn: 142024
* Teach the ASTImporter to perform DeclContext lookups in a way thatDouglas Gregor2011-10-153-77/+118
| | | | | | | | | | avoids loading data from an external source, since those lookups were causing some "interesting" recursion in LLDB. This code is not efficient. I plan to remedy this inefficiency in a follow-up commit. llvm-svn: 142023
* Add missing correctness check to ARMTargetLowering::ReconstructShuffle. ↵Eli Friedman2011-10-142-0/+25
| | | | | | Fixes PR11129. llvm-svn: 142022
* Make sure that the register is in the register class before adding it as a ↵Bill Wendling2011-10-141-1/+3
| | | | | | machine op. llvm-svn: 142021
* Add c_alignas and cxx_alignas featuresPeter Collingbourne2011-10-145-0/+43
| | | | llvm-svn: 142020
* Tweak the C++11 status prose a bit. We still need better user guidance on ↵Douglas Gregor2011-10-141-2/+1
| | | | | | the standard library issue llvm-svn: 142019
* Mark the invoke call instruction as implicitly defining the callee-saved ↵Bill Wendling2011-10-141-2/+31
| | | | | | | | | | registers. The callee-saved registers cannot be live across an invoke call because the control flow may continue along the exceptional edge. When this happens, all of the callee-saved registers are no longer valid. llvm-svn: 142018
* Missed tests for half FP supportAnton Korobeynikov2011-10-144-0/+335
| | | | llvm-svn: 142017
* Provide half floating point support as a storage only type.Anton Korobeynikov2011-10-1436-43/+224
| | | | | | Lack of half FP was a regression compared to llvm-gcc. llvm-svn: 142016
* Switch the C++11 status table from a developer-centric list to aDouglas Gregor2011-10-141-587/+318
| | | | | | | user-centric list, with Clang version numbers, following GCC's lead (and user requests). llvm-svn: 142015
* Attempt to fix Windows buildbot, round 2.Eli Friedman2011-10-141-1/+1
| | | | llvm-svn: 142014
OpenPOWER on IntegriCloud