| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 150647
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The rule governing the flags is this:
no-gc + no-gc = no-gc
no-gc + gc = no-gc
no-gc + gc-only = error
gc + gc = gc
gc + gc-only = gc-only
gc-only + gc-only = gc-only
llvm-svn: 150646
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
pointers and block pointers). We use dummy definitions to keep the
invariant that an implicit, used definition has a body; IR generation
will substitute the actual contents, since they can't be represented
as C++.
For the block pointer case, compute the copy-initialization needed to
capture the lambda object in the block, which IR generation will need
later.
llvm-svn: 150645
|
|
|
|
|
|
|
|
|
| |
-fno-objc-arc-exceptions. This will allow the optimizer to perform
optimizations which are only safe under that flag.
This is a part of rdar://10803830.
llvm-svn: 150644
|
|
|
|
|
|
|
| |
and move it out of -Wgnu so that -Wno-gnu leaves it enabled. As requested by
Eli.
llvm-svn: 150643
|
|
|
|
|
|
| |
Patrik Hägglund, with slightly modified test. Issue reported by Patrik Hägglund on llvmdev.
llvm-svn: 150642
|
|
|
|
| |
llvm-svn: 150641
|
|
|
|
|
|
| |
and unions, and C++11 generalized constant expressions.
llvm-svn: 150640
|
|
|
|
|
|
| |
as unscanned. // rdar://10832643
llvm-svn: 150639
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Call instructions no longer have a list of 43 call-clobbered registers.
Instead, they get a single register mask operand with a bit vector of
call-preserved registers.
This saves a lot of memory, 42 x 32 bytes = 1344 bytes per call
instruction, and it speeds up building call instructions because those
43 imp-def operands no longer need to be added to use-def lists. (And
removed and shifted and re-added for every explicit call operand).
Passes like LiveVariables, LiveIntervals, RAGreedy, PEI, and
BranchFolding are significantly faster because they can deal with call
clobbers in bulk.
Overall, clang -O2 is between 0% and 8% faster, uniformly distributed
depending on call density in the compiled code. Debug builds using
clang -O0 are 0% - 3% faster.
I have verified that this patch doesn't change the assembly generated
for the LLVM nightly test suite when building with -disable-copyprop
and -disable-branch-fold.
Branch folding behaves slightly differently in a few cases because call
instructions have different hash values now.
Copy propagation flushes its data structures when it crosses a register
mask operand. This causes it to leave a few dead copies behind, on the
order of 20 instruction across the entire nightly test suite, including
SPEC. Fixing this properly would require the pass to use different data
structures.
llvm-svn: 150638
|
|
|
|
|
|
| |
This reverts commit 9a68d4584afcd0853b930bd80235b58736e785b4.
llvm-svn: 150637
|
|
|
|
| |
llvm-svn: 150636
|
|
|
|
| |
llvm-svn: 150635
|
|
|
|
|
|
|
| |
Don't attempt to move instructions with regmask operands. They are most
likely calls anyway.
llvm-svn: 150634
|
|
|
|
|
|
| |
The existing framework for postra scheduling is library local. We want to keep it that way. Soon we will have a more general MachineScheduler interface. At that time, various bits will be exposed to targets. In the meantime, the VLIWPacketizer wants to use ScheduleDAGInstrs directly, so it needs to wrapped in a PIMPL to avoid exposing it to the target interface.
llvm-svn: 150633
|
|
|
|
| |
llvm-svn: 150632
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
partial types for contexts and forward decls while allowing us to
complete types later on for debug purposes.
This piggy-backs on the metadata replacement and rauw changes
for temporary nodes and takes advantage of the incremental
support I added in earlier. This allows us to, if we decide,
to limit adding methods and variables to structures in order
to limit the amount of debug information output into a .o file.
The caching is a bit complicated though so any thoughts on
untangling that are welcome.
llvm-svn: 150631
|
|
|
|
| |
llvm-svn: 150630
|
|
|
|
| |
llvm-svn: 150629
|
|
|
|
| |
llvm-svn: 150628
|
|
|
|
| |
llvm-svn: 150627
|
|
|
|
| |
llvm-svn: 150626
|
|
|
|
|
|
| |
parenthesized braced-init-list in the base/member initialization list.
llvm-svn: 150625
|
|
|
|
|
|
|
|
|
| |
method. This allows the target lowering code to not have to deal with MDNodes.
Also, avoid leaking memory like a sieve by not creating a global variable for
the image info section, but just emitting the code directly.
llvm-svn: 150624
|
|
|
|
| |
llvm-svn: 150623
|
|
|
|
|
|
|
|
|
|
|
|
| |
Snooping in other namespaces when the identifier being corrected is
already qualified (i.e. a valid CXXScopeSpec is passed to CorrectTypo)
and ranking synthesized namespace qualifiers relative to the existing
qualifier is now performed. Support for disambiguating the string
representation of synthesized namespace qualifers has also been added
(the change to test/Parser/cxx-using-directive.cpp is an example of an
ambiguous relative qualifier).
llvm-svn: 150622
|
|
|
|
|
|
|
|
| |
Accomplished by moving the body of StringRef::edit_distance into
a separate function that accepts two ArrayRefs, and making
StringRef::edit_distance a wrapper around the new function.
llvm-svn: 150621
|
|
|
|
|
|
|
|
|
|
|
| |
with the same parameter types and return type as the function call
operator. This is the real answer to
http://stackoverflow.com/questions/4148242/is-it-possible-to-convert-a-c0x-lambda-to-a-clang-block
:)
llvm-svn: 150620
|
|
|
|
| |
llvm-svn: 150619
|
|
|
|
|
|
| |
which attempted to rewrite the same meta-data twice.
llvm-svn: 150618
|
|
|
|
|
|
| |
function declaration into a separate function. No functionality change
llvm-svn: 150617
|
|
|
|
|
|
| |
Reviewed by Ted Kremenek.
llvm-svn: 150616
|
|
|
|
|
|
|
|
| |
option table instead of storing the name.
Another 8 bytes + relocation removed from every diagnostic on x86_64.
llvm-svn: 150615
|
|
|
|
|
|
| |
http://llvm.org/bugs/show_bug.cgi?id=11983 . Patch contributed by Jonathan Sauer.
llvm-svn: 150614
|
|
|
|
|
|
| |
undetected because I had failed to test assigning from a const lvalue. This fixes http://llvm.org/bugs/show_bug.cgi?id=11921
llvm-svn: 150613
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This option was added in r129614 and doesn't have any use case that I'm aware
of. It's possible that external tools are using these names - and if that's
the case we can certainly reassess the functionality, but for now it lets us
shave out a few unneeded bits from clang.
Move the "StaticDiagNameIndex" table into the only remaining consumer, diagtool.
This removes the actual diagnostic name strings from clang entirely.
Reviewed by Chris Lattner & Ted Kremenek.
llvm-svn: 150612
|
|
|
|
|
|
|
|
|
| |
function, provide a specialized diagnostic that indicates the kind of
special member function (default constructor, copy assignment
operator, etc.) and that it was implicitly deleted. Add a hook where
we can provide more detailed information later.
llvm-svn: 150611
|
|
|
|
|
|
| |
know).
llvm-svn: 150610
|
|
|
|
|
|
| |
floating point from an input stream. Fixes http://llvm.org/bugs/show_bug.cgi?id=11871
llvm-svn: 150609
|
|
|
|
| |
llvm-svn: 150608
|
|
|
|
|
|
| |
Patch by Sundeep!
llvm-svn: 150607
|
|
|
|
| |
llvm-svn: 150606
|
|
|
|
|
|
| |
This reverts commit 1656806a944bbd23e98c6e578810fe02495ab741.
llvm-svn: 150605
|
|
|
|
|
|
|
|
| |
as it's breaking the build.
This reverts commit 11241abca5e2a313412fed594bb9d9fa2a2057fb.
llvm-svn: 150604
|
|
|
|
| |
llvm-svn: 150603
|
|
|
|
|
|
| |
-lgcc_s.
llvm-svn: 150602
|
|
|
|
| |
llvm-svn: 150601
|
|
|
|
| |
llvm-svn: 150600
|
|
|
|
|
|
| |
earlier missed that there are two common_type definitions and corrected only one of them.
llvm-svn: 150599
|
|
|
|
| |
llvm-svn: 150591
|