| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 174866
|
| |
|
|
| |
llvm-svn: 174865
|
| |
|
|
| |
llvm-svn: 174864
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Before:
operatorvoid*();
operator vector< A< A>>();
After:
operator void *();
operator vector<A<A> >();
llvm-svn: 174863
|
| |
|
|
| |
llvm-svn: 174862
|
| |
|
|
| |
llvm-svn: 174861
|
| |
|
|
|
|
|
|
|
| |
This reverts my commit 171047. Now that I've removed my misguided attempt to
support backend warnings, these diagnostics are only about inline assembly.
It would take quite a bit more work to generalize them properly, so I'm
just reverting this.
llvm-svn: 174860
|
| |
|
|
|
|
|
|
|
| |
This removes the last of the linear searches over ranges of std::multimap
iterators, giving a 7% speedup on the doduc.bc input from PR15222.
No functionality change intended.
llvm-svn: 174859
|
| |
|
|
|
|
|
|
|
| |
This is another cleanup aimed at eliminating linear searches
in ranges of std::multimap.
No functionality change intended.
llvm-svn: 174858
|
| |
|
|
|
|
|
|
|
|
| |
Profiling suggests that getInstructionTypes is performance-sensitive,
this cleans up some double-casting in that function in favor of
using dyn_cast.
No functionality change intended.
llvm-svn: 174857
|
| |
|
|
|
|
|
|
|
|
|
| |
By itself, this does not have much of an effect, but only because in the default
configuration the full cycle checks are used only for small problem sizes.
This is part of a general cleanup of uses of iteration over std::multimap
ranges only for the purpose of checking membership.
No functionality change intended.
llvm-svn: 174856
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
function is successfully handled by fast-isel. That's because function
arguments are *always* handled by SDISel. Introduce FastLowerArguments to
allow each target to provide hook to handle formal argument lowering.
As a proof-of-concept, add ARMFastIsel::FastLowerArguments to handle
functions with 4 or fewer scalar integer (i8, i16, or i32) arguments. It
completely eliminates the need for SDISel for trivial functions.
rdar://13163905
llvm-svn: 174855
|
| |
|
|
| |
llvm-svn: 174854
|
| |
|
|
|
|
|
|
| |
I have some uncommitted changes to the cast code that catch this sort of thing
at compile-time but I still need to do some other cleanup before I can enable
it.
llvm-svn: 174853
|
| |
|
|
| |
llvm-svn: 174852
|
| |
|
|
|
|
|
|
| |
support for updating SlotIndexes to MachineBasicBlock::SplitCriticalEdge(). This
calls renumberIndexes() every time; it should be improved to only renumber
locally.
llvm-svn: 174851
|
| |
|
|
|
|
| |
both LiveVariables and LiveIntervals.
llvm-svn: 174850
|
| |
|
|
|
|
|
|
|
| |
This reads the attribute groups. It currently doesn't do anything with them.
NOTE: In the commit to the bitcode writer, the format *may* change in the near
future. Which means that this code would also change.
llvm-svn: 174849
|
| |
|
|
| |
llvm-svn: 174848
|
| |
|
|
| |
llvm-svn: 174847
|
| |
|
|
| |
llvm-svn: 174846
|
| |
|
|
|
|
|
|
|
| |
This is some initial code for emitting the attribute groups into the bitcode.
NOTE: This format *may* change! Do not rely upon the attribute groups' bitcode
not changing.
llvm-svn: 174845
|
| |
|
|
|
|
|
| |
Attribute groups are essentially all AttributeSets which are used by the
program. Enumerate them here.
llvm-svn: 174844
|
| |
|
|
|
|
|
| |
The more general code for formatting ObjC method exprs does this and more,
it's no longer necessary to special-case this. No behavior change.
llvm-svn: 174843
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
As it turns out, this already works reasonably well.
This example from http://clang.llvm.org/docs/ObjectiveCLiterals.html
NSDictionary *dictionary = @{
@"name" : NSUserName(),
@"date" : [NSDate date],
@"processInfo" : [NSProcessInfo processInfo]
};
is formatted like
NSDictionary *dictionary = @{ @"name" : NSUserName(), @"date" : [NSDate date],
@"processInfo" : [NSProcessInfo processInfo] };
There's already a FIXME in NestedStaticInitializers about supporting one
initializer per line, which is really all that's missing here too.
llvm-svn: 174842
|
| |
|
|
|
|
| |
(From http://clang.llvm.org/docs/ObjectiveCLiterals.html.)
llvm-svn: 174841
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before:
@{
foo:
bar
}
;
Now:
@{ foo : bar };
parseBracedList() already does the right thing from an UnwrappedLineParser
perspective, so check for "@{" in all loops that process constructs that can
contain expressions and call parseBracedList() if found.
llvm-svn: 174840
|
| |
|
|
| |
llvm-svn: 174839
|
| |
|
|
|
|
|
|
|
|
|
| |
Apple's kernel engineers have been expecting this behavior even though
we've never implemented it before, as far as I can tell. In recent months,
clang has gotten better at using vector instructions to optimize memcpy-like
operations, and that has exposed problems when vector/floating-point
instructions are used in kexts that don't support that. This behavior also
matches what Apple's GCC did for PowerPC targets.
llvm-svn: 174838
|
| |
|
|
| |
llvm-svn: 174837
|
| |
|
|
|
|
|
|
|
| |
For x86 targets, we've been using the -msoft-float option to control passing
the no-implicit-float option to cc1. Since the -mno-implicit-float option is
now accepted by the driver, this just makes it work for x86 the same as it
does for ARM targets.
llvm-svn: 174836
|
| |
|
|
| |
llvm-svn: 174835
|
| |
|
|
| |
llvm-svn: 174834
|
| |
|
|
| |
llvm-svn: 174833
|
| |
|
|
| |
llvm-svn: 174832
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
present, it currently verifies them with the MachineVerifier, and this passed
all of the test cases in 'make check' (when accounting for existing verifier
errors). There were some assertion failures in the two-address pass, but they
also happened on code without phis and look like they are caused by different
kill flags from LiveIntervals.
The only part that doesn't work is the critical edge splitting heuristic,
because there isn't currently an efficient way to update LiveIntervals after
splitting an edge. I'll probably start by implementing the slow fallback and
test that it works before tackling the fast path for single-block ranges. The
existing code that updates LiveVariables is fairly slow as it is.
There isn't a command-line option for enabling this; instead, just edit
PHIElimination.cpp to require LiveIntervals.
llvm-svn: 174831
|
| |
|
|
| |
llvm-svn: 174830
|
| |
|
|
|
|
| |
make sense anymore.
llvm-svn: 174829
|
| |
|
|
| |
llvm-svn: 174828
|
| |
|
|
| |
llvm-svn: 174827
|
| |
|
|
|
|
| |
type char, which can't have TBAA tags.
llvm-svn: 174826
|
| |
|
|
| |
llvm-svn: 174825
|
| |
|
|
| |
llvm-svn: 174824
|
| |
|
|
| |
llvm-svn: 174823
|
| |
|
|
|
|
|
|
| |
Use this to add a space after "@[" and before "]" for now.
Later, I want to use this to format multi-line array literals nicer, too.
llvm-svn: 174822
|
| |
|
|
|
|
|
|
| |
the "nonatomic" attribute in property redeclaration
in class extension. Also, improved on diagnostics in
this area while at it. // rdar://13156292
llvm-svn: 174821
|
| |
|
|
| |
llvm-svn: 174817
|
| |
|
|
| |
llvm-svn: 174816
|
| |
|
|
| |
llvm-svn: 174815
|
| |
|
|
| |
llvm-svn: 174814
|