| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
calculated.
llvm-svn: 122912
|
| |
|
|
| |
llvm-svn: 122911
|
| |
|
|
| |
llvm-svn: 122909
|
| |
|
|
|
|
|
|
| |
compute the value range
in the predecessor block, leading to an incorrect conclusion for the edge value. Found by inspection.
llvm-svn: 122908
|
| |
|
|
|
|
|
|
|
|
| |
My i386 llvm-gcc nightly tester found a regression for
SingleSource/Benchmarks/McGill/chomp that a bisect blamed on 122743.
That seems strange but apparently the combination of earlycse and instcombine
did something bad. Chris says he intended to remove the instcombine pass, so
let's go ahead and try that. We'll see if there are any performance losses.
llvm-svn: 122907
|
| |
|
|
|
|
|
|
|
| |
fix the issue in
hasBlockValue() that was causing iterator invalidations. Many thanks to Dimitry Andric for
tracking down those invalidations!
llvm-svn: 122906
|
| |
|
|
| |
llvm-svn: 122905
|
| |
|
|
|
|
|
|
| |
parameter packs, along with ParmVarDecl::isParameterPack(), which
looks for function parameter packs. Use these routines to fix some
obvious FIXMEs.
llvm-svn: 122904
|
| |
|
|
|
|
| |
template argument packs. Plus, remove a FIXME that I fixed yesterday.
llvm-svn: 122903
|
| |
|
|
|
|
|
| |
corresponding template parameter, make sure that prior converted
template arguments are available for substitution.
llvm-svn: 122902
|
| |
|
|
|
|
| |
describing the ordinal number of the currently running test case.
llvm-svn: 122901
|
| |
|
|
| |
llvm-svn: 122900
|
| |
|
|
|
|
|
| |
for template template argument pack expansions (which was no longer
used) and another that was a placeholder for an llvm_unreachable.
llvm-svn: 122898
|
| |
|
|
|
|
| |
at debugserver-124.
llvm-svn: 122897
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
expansions with something that is easier to use correctly: a new
template argment kind, rather than a bit on an existing kind. Update
all of the switch statements that deal with template arguments, fixing
a few latent bugs in the process. I"m happy with this representation,
now.
And, oh look! Template instantiation and deduction work for template
template argument pack expansions.
llvm-svn: 122896
|
| |
|
|
|
|
|
| |
Fixed the display of complex numbers in lldb_private::DataExtractor::Dump(...)
and also fixed other edge display cases in lldb_private::ClangASTType::DumpTypeValue(...).
llvm-svn: 122895
|
| |
|
|
| |
llvm-svn: 122894
|
| |
|
|
| |
llvm-svn: 122893
|
| |
|
|
| |
llvm-svn: 122891
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
for template template argument pack expansions. This allows fun such
as:
template<template<class> class ...> struct apply_impl { /*...*/ };
template<template<class> class ...Metafunctions> struct apply {
typedef typename apply_impl<Metafunctions...>::type type;
};
However, neither template argument deduction nor template
instantiation is implemented for template template argument packs, so
this functionality isn't useful yet.
I'll probably replace the encoding of template template
argument pack expansions in TemplateArgument so that it's harder to
accidentally forget about the expansion. However, this is a step in
the right general direction.
llvm-svn: 122890
|
| |
|
|
|
|
| |
by overriding TargetFrameInfo::getFrameIndexOffset to take into account the new frame index information.
llvm-svn: 122889
|
| |
|
|
|
|
| |
implemented, however.
llvm-svn: 122888
|
| |
|
|
|
|
| |
regressing code quality.
llvm-svn: 122887
|
| |
|
|
| |
llvm-svn: 122886
|
| |
|
|
|
|
| |
code.
llvm-svn: 122885
|
| |
|
|
| |
llvm-svn: 122884
|
| |
|
|
| |
llvm-svn: 122883
|
| |
|
|
| |
llvm-svn: 122882
|
| |
|
|
| |
llvm-svn: 122881
|
| |
|
|
|
|
| |
entities easier.
llvm-svn: 122880
|
| |
|
|
| |
llvm-svn: 122879
|
| |
|
|
|
|
| |
functionality change
llvm-svn: 122878
|
| |
|
|
|
|
|
| |
parameter packs. Also, the "no template parameters after a template
parameter pack" rule only applies to primary class templates.
llvm-svn: 122877
|
| |
|
|
| |
llvm-svn: 122876
|
| |
|
|
|
|
| |
parameters and template template parameters.
llvm-svn: 122875
|
| |
|
|
|
|
|
| |
template<template<class> class ...Metafunctions>
struct apply_to_each;
llvm-svn: 122874
|
| |
|
|
|
|
| |
directory name on Unix-like systems.
llvm-svn: 122873
|
| |
|
|
| |
llvm-svn: 122872
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the declaration-specifiers and on the declarator itself are moved
to the appropriate declarator chunk. This permits a greatly
simplified model for how to apply these attributes, as well as
allowing a much more efficient query for the GC attribute.
Now all qualifier queries follow the same basic strategy of
"local qualifiers, local qualifiers on the canonical type,
then look through arrays". This can be easily optimized by
changing the canonical qualified-array-type representation.
Do not process type attributes as decl attributes on declarations
with declarators.
When computing the type of a block, synthesize a prototype
function declarator chunk if the decl-spec type was not a
function. This simplifies the logic for building block signatures.
Change the logic which inserts an objc_read_weak on a block
literal to only fire if the block has a __weak __block variable,
rather than if the return type of the block is __weak qualified,
which is not actually a sensible thing to ask.
llvm-svn: 122871
|
| |
|
|
|
|
|
| |
step is to only process instructions in subloops if they have been modified by
an earlier simplification.
llvm-svn: 122869
|
| |
|
|
|
|
|
|
|
|
| |
skipping them, but it should probably use a worklist and only revisit those
instructions in subloops that have actually changed. It should probably also
use a worklist after the first iteration like instsimplify now does. Regardless,
it's only 0.3% of opt -O2 time on 403.gcc if it replaces the instcombine placed
in the middle of the loop passes.
llvm-svn: 122868
|
| |
|
|
|
|
|
|
|
| |
Objective-C declarations and statements. Fixes
<rdar://problem/8814576> (wrong source line for diagnostics about
missing ';'), and now we actually consume the ';' at the end of a
@compatibility_alias directive!
llvm-svn: 122855
|
| |
|
|
|
|
|
|
| |
It forms memset and memcpy's, and will someday form popcount and
other stuff. All of this is bad when compiling the implementation
of memset, memcpy, popcount, etc.
llvm-svn: 122854
|
| |
|
|
|
|
|
| |
resolution require that the pointed-to type be an object type, but we
weren't filtering out non-object types. Do so, fixing PR7851.
llvm-svn: 122853
|
| |
|
|
|
|
|
|
|
|
| |
conversions on the substituted non-type template arguments of a class
template partial specialization. C++ [temp.class.spec]p8 actually
prohibits all of the cases where this code would have fired.
Hey, it's better than having to deal with variadic templates here!
llvm-svn: 122852
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
specializations. We weren't dealing with any of the cases where the
type of the non-type template argument differs from the type of the
corresponding template parameter in the primary template. We would
think that the template parameter in the partial specialization was
not deducible (and warn about it, incorrectly), then fail to convert a
deduced parameter to the type of the template parameter in the partial
specialization (which may involve truncation, among other
things). Fixes PR8905.
llvm-svn: 122851
|
| |
|
|
| |
llvm-svn: 122850
|
| |
|
|
| |
llvm-svn: 122849
|
| |
|
|
| |
llvm-svn: 122848
|
| |
|
|
|
|
| |
variadic templates. No functionality change.
llvm-svn: 122847
|