- Jun 22, 2012
-
-
Duncan Sands authored
fail. Original commit message: Performance optimizations: - SwitchInst: case values stored separately from Operands List. It allows to make faster access to individual case value numbers or ranges. - Optimized IntItem, added APInt value caching. - Optimized IntegersSubsetGeneric: added optimizations for cases when subset is single number or when subset consists from single numbers only. On my machine these optimizations gave about 4-6% of compile-time improvement. llvm-svn: 158986
-
Stepan Dyatkovskiy authored
- SwitchInst: case values stored separately from Operands List. It allows to make faster access to individual case value numbers or ranges. - Optimized IntItem, added APInt value caching. - Optimized IntegersSubsetGeneric: added optimizations for cases when subset is single number or when subset consists from single numbers only. On my machine these optimizations gave about 4-6% of compile-time improvement. llvm-svn: 158979
-
Andrew Trick authored
This makes it explicit when ScoreboardHazardRecognizer will be used. "GenericItineraries" would only make sense if it contained real itinerary values and still required ScoreboardHazardRecognizer. llvm-svn: 158963
-
Jakob Stoklund Olesen authored
The code in X86TargetLowering::LowerEH_RETURN() assumes that a frame pointer exists, but the frame pointer was forced by the presence of llvm.eh.unwind.init which isn't guaranteed. If llvm.eh.unwind.init is actually required in functions calling eh.return (is it?), we should diagnose that instead of emitting bad machine code. This should fix the dragonegg-x86_64-linux-gcc-4.6-test bot. llvm-svn: 158961
-
Andrew Trick authored
This is a minor drive-by fix with no robust way to unit test. As an example see neon-div.ll: SU(16): %Q8<def> = VMOVLsv4i32 %D17, pred:14, pred:%noreg, %Q8<imp-use,kill> val SU(1): Latency=2 Reg=%Q8 ...should be latency=1 llvm-svn: 158960
-
Andrew Trick authored
Minor drive by fix to cleanup latency computation. Calling getOperandLatency with a deliberately incorrect operand index does not give you the latency you want. llvm-svn: 158959
-
Nick Lewycky authored
a recommit of r127757. Fixes PR9493. Patch by Paul Robinson! llvm-svn: 158957
-
Lang Hames authored
boolean flag to an enum: { Fast, Standard, Strict } (default = Standard). This option controls the creation by optimizations of fused FP ops that store intermediate results in higher precision than IEEE allows (E.g. FMAs). The behavior of this option is intended to match the behaviour specified by a soon-to-be-introduced frontend flag: '-ffuse-fp-ops'. Fast mode - allows formation of fused FP ops whenever they're profitable. Standard mode - allow fusion only for 'blessed' FP ops. At present the only blessed op is the fmuladd intrinsic. In the future more blessed ops may be added. Strict mode - allow fusion only if/when it can be proven that the excess precision won't effect the result. Note: This option only controls formation of fused ops by the optimizers. Fused operations that are explicitly requested (e.g. FMA via the llvm.fma.* intrinsic) will always be honored, regardless of the value of this option. Internally TargetOptions::AllowExcessFPPrecision has been replaced by TargetOptions::AllowFPOpFusion. llvm-svn: 158956
-
Hal Finkel authored
The existing contraction patterns are replaced with fma/fneg. Overall functionality should be the same. llvm-svn: 158955
-
Nuno Lopes authored
sorry for the churn :S enough for today; going to sleep. llvm-svn: 158953
-
Nuno Lopes authored
remove extractMallocCallFromBitCast, since it was tailor maded for its sole user. Update GlobalOpt accordingly. llvm-svn: 158952
-
Nuno Lopes authored
instcombine: disable optimization of 'invoke null/undef'. I'll move this functionality to SimplifyCFG (since we cannot make changes to the CFG here). Fixes the crashes with the attached test case llvm-svn: 158951
-
Michael J. Spencer authored
llvm-svn: 158947
-
-
Arnaud A. de Grandmaison authored
llvm-svn: 158943
-
NAKAMURA Takumi authored
llvm-svn: 158942
-
NAKAMURA Takumi authored
llvm-svn: 158941
-
- Jun 21, 2012
-
-
Jack Carter authored
to be generic across architectures. It has the following description in the gnu sources: Negate the immediate constant Several Architectures such as x86 have local implementations of operand modifier 'n' which go beyond the above description slightly. This won't affect them. Affected files: lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp Added 'n' to the switch cases. test/CodeGen/Generic/asm-large-immediate.ll Generic compiled test (x86 for me) test/CodeGen/Mips/asm-large-immediate.ll Mips compiled version of the generic one Contributer: Jack Carter llvm-svn: 158939
-
Nuno Lopes authored
Update comments accordingly. Make instcombine remove useless invokes to C++'s 'new' allocation function (test attached). llvm-svn: 158937
-
Akira Hatanaka authored
2. re-enable null.ll test 3. fix some minor style violations Patch by Reed Kotler. llvm-svn: 158935
-
Akira Hatanaka authored
Patch by Reed Kotler. llvm-svn: 158933
-
Hal Finkel authored
Thanks to Tobias von Koch for pointing out this problem. llvm-svn: 158932
-
Chandler Carruth authored
restore support for CMake versions before 2.8.6 -- sorry for the trouble! llvm-svn: 158930
-
Nuno Lopes authored
Thanks to Chandler for pointing out the problem. llvm-svn: 158928
-
Pete Cooper authored
llvm-svn: 158927
-
Jack Carter authored
to be generic across architectures. It has the following description in the gnu sources: Substitute immediate value without immediate syntax Several Architectures such as x86 have local implementations of operand modifier 'c' which go beyond the above description slightly. To make use of the generic modifiers without overriding local implementation one can make a call to the base class method for AsmPrinter::PrintAsmOperand() in the locally derived method's "default" case in the switch statement. That way if it is already defined locally the generic version will never get called. This change is needed when test/CodeGen/generic/asm-large-immediate.ll failed on a native Mips board. The test was assuming a generic implementation was in place. Affected files: lib/Target/Mips/MipsAsmPrinter.cpp: Changed the default case to call the base method. lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp Added 'c' to the switch cases. test/CodeGen/Mips/asm-large-immediate.ll Mips compiled version of the generic one Contributer: Jack Carter llvm-svn: 158925
-
Nuno Lopes authored
move some typedefs so that we don't polute the llvm namespace. this should appease the GCC buildbots llvm-svn: 158924
-
Nuno Lopes authored
hopefully fix the buildbots: some tests have wrong definitions of malloc and were crashing this code on 64 bits machines llvm-svn: 158923
-
Nuno Lopes authored
port the BoundsChecking patch to the new MemoryBuiltin API (i.e., remove most of the code from here). Remove the alloc_size.ll test until we settle on a metadata format that makes everyone happy.. llvm-svn: 158920
-
Nuno Lopes authored
- provide more extensive set of functions to detect library allocation functions (e.g., malloc, calloc, strdup, etc) - provide an API to compute the size and offset of an object pointed by Move a few clients (GVN, AA, instcombine, ...) to the new API. This implementation is a lot more aggressive than each of the custom implementations being replaced. Patch reviewed by Nick Lewycky and Chandler Carruth, thanks. llvm-svn: 158919
-
Nadav Rotem authored
A patch by Tom Stellard with minor changes. llvm-svn: 158918
-
NAKAMURA Takumi authored
It passes according to ppc changes. llvm-svn: 158917
-
NAKAMURA Takumi authored
llvm-svn: 158914
-
Chandler Carruth authored
using to test the alignment support library. Patch from Nikola on IRC. llvm-svn: 158912
-
Chandler Carruth authored
through. Also sort them. llvm-svn: 158911
-
Chandler Carruth authored
Makefiles, the CMake files in every other part of the LLVM tree, and sanity. This should also restore the output tree structure of all the unit tests, sorry for breaking that, and thanks for letting me know. The fundamental change is to put a CMakeLists.txt file in the unittest directory, with a single test binary produced from it. This has several advantages: - No more weird directory stripping in the unittest macro, allowing it to be used more readily in other projects. - No more directory prefixes on all the source files. - Allows correct and precise use of LLVM's per-directory dependency system. - Allows use of the checking logic for source files that have not been added to the CMake build. This uncovered a file being skipped with CMake in LLVM and one in Clang's unit tests. - Makes Specifying conditional compilation or other custom logic for JIT tests easier. It did require adding the concept of an explicit 'optional' source file to the CMake build so that the missing-file check can skip cases where the file is *supposed* to be missing. =] This is another chunk of refactoring the CMake build in order to make it usable for other clients like CompilerRT / ASan / TSan. Note that this is interdependent with a Clang CMake change. llvm-svn: 158909
-
Nadav Rotem authored
llvm-stress: Stabalize (by using an ordered container) and add randomness to the order in which loops are generated. llvm-svn: 158908
-
Bill Wendling authored
llvm-svn: 158904
-
Bill Wendling authored
llvm-svn: 158903
-
Lang Hames authored
llvm-svn: 158902
-