- Oct 26, 2012
-
-
Benjamin Kramer authored
llvm-svn: 166794
-
Chad Rosier authored
Part of rdar://12576868 llvm-svn: 166792
-
Chad Rosier authored
Part of rdar://12576868 llvm-svn: 166790
-
Benjamin Kramer authored
This is currently true, but may change when DA grows more aggressive caching. Without this setting it's impossible to use DA from a LoopPass because DA is a function pass and cannot be properly scheduled in between LoopPasses. The LoopManager reacts to this with an infinite loop which made this really annoying to debug. llvm-svn: 166788
-
Benjamin Kramer authored
The LoopSimplify bug is pretty harmless because the loop goes from unanalyzable to analyzable but the LCSSA bug is very nasty. It only comes into play with a specific order of the LoopPassManager worklist and can cause actual miscompilations, when a SCEV refers to a value that has been replaced with PHI node. SCEVExpander may then insert code into the wrong place, either violating domination or randomly miscompiling stuff. Comes with an extensive test case reduced from the test-suite with bugpoint+SCEVValidator. llvm-svn: 166787
-
Benjamin Kramer authored
Enabled with -verify-scev. This could be extended significantly but hopefully catches the common cases now. Note that it's not enabled by default in any configuration because the way it tries to distinguish SCEVs is still fragile and may produce false positives. Also the test-suite isn't clean yet, one example is that it fails if a pass drops an NSW bit but it's still present in SCEV's cached. Cleaning up all those cases will take some time. llvm-svn: 166786
-
Nadav Rotem authored
PR14183. llvm-svn: 166785
-
Akira Hatanaka authored
llvm-svn: 166784
-
Reed Kotler authored
llvm-svn: 166780
-
Chad Rosier authored
operator. llvm-svn: 166779
-
Renato Golin authored
Patch by Pasi Parviainen <pasi.parviainen@iki.fi> llvm-svn: 166773
-
Joerg Sonnenberger authored
llvm-svn: 166772
-
Adhemerval Zanella authored
This patch fixes the rldcl/rldicl/rldicr instruction emission. The issue is the MDForm_1 instruction defines the PowerISA MB field from 'rldicl' with the name MBE, but RLDCL/RLDICL/RLDICR definition uses as 'MB'. It end up by generatint the 'rldicl' enconding at 'lib/Target/PowerPC/PPCGenMCCodeEmitter.inc' to use the fourth argument as the third. The patch changes it by adjusting to use the fourth argument as intended. Fixes PR14180. llvm-svn: 166770
-
David Tweed authored
llvm-svn: 166769
-
Joerg Sonnenberger authored
Always use an exit code of 1, but print the help message if useful. Remove the exception handling tag in llvm-as, llvm-dis and llvm-bcanalyzer, where it isn't used. llvm-svn: 166767
-
Nicolas Geoffray authored
llvm-svn: 166763
-
Nicolas Geoffray authored
Fix CPP backend for method attributes by creating a block where a new AttrBuilder is defined for each attribute. llvm-svn: 166762
-
Bill Wendling authored
llvm-svn: 166760
-
Reed Kotler authored
llvm-svn: 166755
-
Nick Lewycky authored
instructions in a block. GetUnderlyingObject is more expensive than it looks as it can, for instance, call SimplifyInstruction. This might have some behavioural changes in odd corner cases, but only because of some strange artefacts of the original implementation. If you were relying on those, we can fix that by replacing this with a smarter algorithm. Change passes the existing tests. llvm-svn: 166754
-
Hal Finkel authored
This change reflects VTTI refactoring; no functionality change intended. llvm-svn: 166752
-
Hal Finkel authored
As discussed on IRC, add VectorTargetTransform::getNumberOfParts to provide a stable interface to the vector legalization splitting factor. llvm-svn: 166751
-
Nick Lewycky authored
llvm-svn: 166750
-
Reed Kotler authored
llvm-svn: 166749
-
Rafael Espindola authored
a cmake and an autoconf build. llvm-svn: 166748
-
Reed Kotler authored
failure in some cases llvm-svn: 166747
-
Rafael Espindola authored
to hack around this in the gold plugin by deleting a module if no symbol was needed. Unfortunately, the hack is wrong in the case of o module having no visible symbols but still having side effects via static constructors. The bug will have to be fixed in libLTO itself. llvm-svn: 166745
-
Rafael Espindola authored
llvm-svn: 166742
-
Hal Finkel authored
Once vector-of-pointer support works, then this can be reverted. llvm-svn: 166741
-
Nadav Rotem authored
llvm-svn: 166739
-
Hal Finkel authored
This is needed so that perl's SHA can be compiled (otherwise BBVectorize takes far too long to find its fixed point). I'll try to come up with a reduced test case. llvm-svn: 166738
-
Kaelyn Uhrain authored
include/llvm/MC/MCTargetAsmParser.h:46:8: error: 'llvm::ParseInstructionInfo' has a field 'llvm::ParseInstructionInfo::AsmRewrites' whose type uses the anonymous namespace [-Werror] llvm-svn: 166729
-
- Oct 25, 2012
-
-
Nadav Rotem authored
llvm-svn: 166726
-
Chad Rosier authored
llvm-svn: 166724
-
Nadav Rotem authored
llvm-svn: 166722
-
Reed Kotler authored
llvm-svn: 166721
-
Hal Finkel authored
llvm-svn: 166720
-
Kaelyn Uhrain authored
llvm-svn: 166719
-
Nadav Rotem authored
llvm-svn: 166718
-
Hal Finkel authored
This is the first of several steps to incorporate information from the new TargetTransformInfo infrastructure into BBVectorize. Two things are done here: 1. Target information is used to determine if it is profitable to fuse two instructions. This means that the cost of the vector operation must not be more expensive than the cost of the two original operations. Pairs that are not profitable are no longer considered (because current cost information is incomplete, for intrinsics for example, equal-cost pairs are still considered). 2. The 'cost savings' computed for the profitability check are also used to rank the DAGs that represent the potential vectorization plans. Specifically, for nodes of non-trivial depth, the cost savings is used as the node weight. The next step will be to incorporate the shuffle costs into the DAG weighting; this will give the edges of the DAG weights as well. Once that is done, when target information is available, we should be able to dispense with the depth heuristic. llvm-svn: 166716
-