- Feb 11, 2013
-
-
Hal Finkel authored
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
-
Hal Finkel authored
This is another cleanup aimed at eliminating linear searches in ranges of std::multimap. No functionality change intended. llvm-svn: 174858
-
Hal Finkel authored
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
-
Hal Finkel authored
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
-
Evan Cheng authored
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
-
Evan Cheng authored
llvm-svn: 174854
-
David Blaikie authored
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
-
Joel Jones authored
llvm-svn: 174852
-
Cameron Zwarich authored
support for updating SlotIndexes to MachineBasicBlock::SplitCriticalEdge(). This calls renumberIndexes() every time; it should be improved to only renumber locally. llvm-svn: 174851
-
Cameron Zwarich authored
both LiveVariables and LiveIntervals. llvm-svn: 174850
-
Bill Wendling authored
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
-
Bill Wendling authored
llvm-svn: 174848
-
Bill Wendling authored
llvm-svn: 174846
-
Bill Wendling authored
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
-
Bill Wendling authored
Attribute groups are essentially all AttributeSets which are used by the program. Enumerate them here. llvm-svn: 174844
-
- Feb 10, 2013
-
-
Vincent Lejeune authored
llvm-svn: 174839
-
Bill Wendling authored
llvm-svn: 174834
-
Bill Wendling authored
llvm-svn: 174833
-
Bill Wendling authored
llvm-svn: 174832
-
Cameron Zwarich authored
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
-
Cameron Zwarich authored
llvm-svn: 174830
-
Cameron Zwarich authored
make sense anymore. llvm-svn: 174829
-
Cameron Zwarich authored
llvm-svn: 174828
-
Bill Wendling authored
llvm-svn: 174824
-
- Feb 09, 2013
-
-
Jakub Staszak authored
llvm-svn: 174817
-
Bill Wendling authored
The original syntax for the attribute groups was ambiguous. For example: declare void @foo() #1 #0 = attributes { noinline } The '#0' would be parsed as an attribute reference for '@foo' and not as a top-level entity. In order to continue forward while waiting for a decision on what the correct syntax is, I'm changing it to this instead: declare void @foo() #1 attributes #0 = { noinline } Repeat: This is TEMPORARY until we decide what the correct syntax should be. llvm-svn: 174813
-
Justin Holewinski authored
llvm-svn: 174808
-
Chris Lattner authored
bitcode writer would generate abbrev records saying that the abbrev should be filled with fixed zero-bit bitfields (this happens in the .bc writer when the number of types used in a module is exactly one, since log2(1) == 0). In this case, just handle it as a literal zero. We can't "just fix" the writer without breaking compatibility with existing bc files, so have the abbrev reader do the substitution. Strengthen the assert in read to reject reads of zero bits so we catch such crimes in the future, and remove the special case designed to handle this. llvm-svn: 174801
-
Andrew Trick authored
Handle chains in which the same offset is used for both loads and stores to the same array. Fixes rdar://11410078. llvm-svn: 174789
-
Jakub Staszak authored
llvm-svn: 174786
-
Manman Ren authored
line table entries in assembly. llvm-svn: 174785
-
Jakob Stoklund Olesen authored
This is part of the plan to delete LiveVariables. llvm-svn: 174783
-
Sergei Larin authored
Enables raw_ostream I/O for BasicBlockPass. llvm-svn: 174776
-
Jakob Stoklund Olesen authored
This uses a liveness algorithm that does not depend on data from the LiveVariables analysis, it is the first step towards removing LiveVariables completely. llvm-svn: 174774
-
- Feb 08, 2013
-
-
Tom Stellard authored
Also output a more useful error message. NOTE: This is a candidate for the Mesa stable branch llvm-svn: 174763
-
Tom Stellard authored
This fixes a couple of bugs and incorrect assumptions, in total four more piglit tests now pass. v2: fix small bug in the dominator updating Patch by: Christian König Signed-off-by:
Christian König <christian.koenig@amd.com> llvm-svn: 174762
-
Tom Stellard authored
Patch by: Christian König Intersecting loop handling was wrong. Signed-off-by:
Christian König <christian.koenig@amd.com> Tested-by:
Michel Dänzer <michel.daenzer@amd.com> llvm-svn: 174761
-
Tom Stellard authored
Otherwise we sometimes produce invalid code. Patch by: Christian König Signed-off-by:
Christian König <christian.koenig@amd.com> Tested-by:
Michel Dänzer <michel.daenzer@amd.com> llvm-svn: 174760
-
Dan Gohman authored
llvm-svn: 174756
-
rdar://problem/12867368Bob Wilson authored
This reverts r171041. This was a nice idea that didn't work out well. Clang warnings need to be associated with warning groups so that they can be selectively disabled, promoted to errors, etc. This simplistic patch didn't allow for that. Enhancing it to provide some way for the backend to specify a front-end warning type seems like overkill for the few uses of this, at least for now. llvm-svn: 174748
-