- Feb 16, 2012
-
-
Richard Smith authored
and move it out of -Wgnu so that -Wno-gnu leaves it enabled. As requested by Eli. llvm-svn: 150643
-
Eli Friedman authored
loop-rotate shouldn't hoist alloca instructions out of a loop. Patch by Patrik Hägglund, with slightly modified test. Issue reported by Patrik Hägglund on llvmdev. llvm-svn: 150642
-
Kostya Serebryany authored
llvm-svn: 150641
-
Richard Smith authored
and unions, and C++11 generalized constant expressions. llvm-svn: 150640
-
Fariborz Jahanian authored
as unscanned. // rdar://10832643 llvm-svn: 150639
-
Jakob Stoklund Olesen authored
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
-
Eric Christopher authored
This reverts commit 9a68d4584afcd0853b930bd80235b58736e785b4. llvm-svn: 150637
-
Bill Wendling authored
llvm-svn: 150636
-
Bill Wendling authored
llvm-svn: 150635
-
Jakob Stoklund Olesen authored
Don't attempt to move instructions with regmask operands. They are most likely calls anyway. llvm-svn: 150634
-
Andrew Trick authored
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
-
Bill Wendling authored
llvm-svn: 150632
-
Eric Christopher authored
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
-
Lang Hames authored
llvm-svn: 150630
-
- Feb 15, 2012
-
-
Kaelyn Uhrain authored
llvm-svn: 150629
-
Bill Wendling authored
llvm-svn: 150628
-
Lang Hames authored
llvm-svn: 150627
-
Bill Wendling authored
llvm-svn: 150626
-
Richard Smith authored
parenthesized braced-init-list in the base/member initialization list. llvm-svn: 150625
-
Bill Wendling authored
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
-
Bill Wendling authored
llvm-svn: 150623
-
Kaelyn Uhrain authored
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
-
Kaelyn Uhrain authored
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
-
Douglas Gregor authored
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
-
Andrew Trick authored
llvm-svn: 150619
-
Fariborz Jahanian authored
which attempted to rewrite the same meta-data twice. llvm-svn: 150618
-
Douglas Gregor authored
Factor the construction of the lambda-to-function-pointer conversion function declaration into a separate function. No functionality change llvm-svn: 150617
-
David Blaikie authored
Reviewed by Ted Kremenek. llvm-svn: 150616
-
Benjamin Kramer authored
Store the warning option corresponding to a diagnostics as an index into the option table instead of storing the name. Another 8 bytes + relocation removed from every diagnostic on x86_64. llvm-svn: 150615
-
Howard Hinnant authored
Use __is_polymorphic if available. This fixes http://llvm.org/bugs/show_bug.cgi?id=11983 . Patch contributed by Jonathan Sauer. llvm-svn: 150614
-
Howard Hinnant authored
tuple was accidentally lacking a valid copy assignment operator. It went 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
-
David Blaikie authored
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
-
Douglas Gregor authored
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
-
Daniel Dunbar authored
llvm-svn: 150610
-
Howard Hinnant authored
Do not parse sign if a sign is not the next legal character when parsing floating point from an input stream. Fixes http://llvm.org/bugs/show_bug.cgi?id=11871 llvm-svn: 150609
-
Lang Hames authored
llvm-svn: 150608
-
Andrew Trick authored
Patch by Sundeep! llvm-svn: 150607
-
Sirish Pande authored
llvm-svn: 150606
-
Eric Christopher authored
This reverts commit 1656806a944bbd23e98c6e578810fe02495ab741. llvm-svn: 150605
-
Eric Christopher authored
as it's breaking the build. This reverts commit 11241abca5e2a313412fed594bb9d9fa2a2057fb. llvm-svn: 150604
-