- Nov 11, 2009
-
-
Devang Patel authored
llvm-svn: 86874
-
Dan Gohman authored
llvm-svn: 86873
-
Dan Gohman authored
tail merging support to handle more cases. - Recognize several cases where tail merging is beneficial even when the tail size is smaller than the generic threshold. - Make use of MachineInstrDesc::isBarrier to help detect non-fallthrough blocks. - Check for and avoid disrupting fall-through edges in more cases. llvm-svn: 86871
-
Chandler Carruth authored
Sorry about that. llvm-svn: 86869
-
Douglas Gregor authored
template-type-parameter specific template argument checking code and up to the template argument checking loop. In theory, this should make variadic templates work better; in practice, they don't well enough for us to care anyway (YET!), so this is mostly a re-organization to simplify CheckTemplateArgument. llvm-svn: 86868
-
Jakob Stoklund Olesen authored
- Edges are split before any phis are eliminated, so the code is SSA. - Create a proper IR BasicBlock for the split edges. - LiveVariables::addNewBlock now has same syntax as MachineDominatorTree::addNewBlock. Algorithm calculates predecessor live-out set rather than successor live-in set. This feature still causes some miscompilations. llvm-svn: 86867
-
Douglas Gregor authored
increase sanity. No intended functionality change. llvm-svn: 86866
-
Douglas Gregor authored
template template parameter, substitute any prior template arguments into the template template parameter. This, for example, allows us to properly check the template template argument for a class such as: template<typename T, template<T Value> class X> struct Foo; The actual implementation of this feature was trivial; most of the change is dedicated to giving decent diagnostics when this substitution goes horribly wrong. We now get a note like: note: while substituting prior template arguments into template template parameter 'X' [with T = float] As part of this change, enabled some very pedantic checking when comparing template template parameter lists, which shook out a bug in our overly-eager checking of default arguments of template template parameters. We now perform only minimal checking of such default arguments when they are initially parsed. llvm-svn: 86864
-
Chandler Carruth authored
llvm-svn: 86863
-
Devang Patel authored
Do not eagerly set stop point for arguments. This misleads the debugger in identifying beginning of function body. Instead, create new location to attach with llvm.dbg.declare. This location is only used to find the context of the variable by the code generator, and it is not used to emit line number info. llvm-svn: 86862
-
Devang Patel authored
llvm-svn: 86861
-
Devang Patel authored
add debug info location to an instruction. llvm-svn: 86859
-
Evan Cheng authored
Add TargetLowering::isLegalICmpImmediate. It tells LSR what immediate can be folded into target icmp instructions. llvm-svn: 86858
-
Jim Grosbach authored
llvm-svn: 86857
-
Dan Gohman authored
llvm-svn: 86856
-
Dan Gohman authored
llvm-svn: 86855
-
Dan Gohman authored
the numbers mean. llvm-svn: 86854
-
Dan Gohman authored
llvm-svn: 86853
-
Dan Gohman authored
llvm-svn: 86852
-
Dan Gohman authored
llvm-svn: 86851
-
Dan Gohman authored
llvm-svn: 86850
-
Fariborz Jahanian authored
initializer list. Fixes PR5463. llvm-svn: 86849
-
Chris Lattner authored
llvm-svn: 86848
-
Chris Lattner authored
llvm-svn: 86847
-
Chris Lattner authored
llvm-svn: 86846
-
Ted Kremenek authored
llvm-svn: 86845
-
Douglas Gregor authored
template<typename T> struct X { template<template<T Value> class Y> struct Inner; }; llvm-svn: 86844
-
Douglas Gregor authored
nested-name-specifiers so that they don't gobble the template name (or operator-function-id) unless there is also a template-argument-list. For example, given T::template apply we would previously consume both "template" and "apply" as part of parsing the nested-name-specifier, then error when we see that there is no "<" starting a template argument list. Now, we parse such constructs tentatively, and back off if the "<" is not present. This allows us to parse dependent template names as one would use them for, e.g., template template parameters: template<typename T, template<class> class X = T::template apply> struct MetaSomething; Also, test default arguments for template template parameters. llvm-svn: 86841
-
Duncan Sands authored
llvm.invariant.start to be used without necessarily being paired with a call to llvm.invariant.end. If you run the entire optimization pipeline then such calls are in fact deleted (adce does it), but that's actually a good thing since we probably do want them to be zapped late in the game. There should really be an integration test that checks that the llvm.invariant.start call lasts long enough that all passes that do interesting things with it get to do their stuff before it is deleted. But since no passes do anything interesting with it yet this will have to wait for later. llvm-svn: 86840
-
Zhongxing Xu authored
llvm-svn: 86837
-
Zhongxing Xu authored
llvm-svn: 86836
-
Zhongxing Xu authored
Now only one test case is XFAIL'ed. llvm-svn: 86834
-
Zhongxing Xu authored
explicitly. Fix 80-col violations. llvm-svn: 86833
-
Daniel Dunbar authored
llvm-svn: 86830
-
Daniel Dunbar authored
llvm-svn: 86829
-
Daniel Dunbar authored
clang-cc/Options.cpp llvm-svn: 86828
-
Daniel Dunbar authored
mode. llvm-svn: 86827
-
Daniel Dunbar authored
InitializeCompileOptions. llvm-svn: 86826
-
Daniel Dunbar authored
llvm-svn: 86825
-
Daniel Dunbar authored
llvm-svn: 86824
-