aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2011-02-20Instead of keeping two Value*->id# mappings, keep one Value->Value mapping andNick Lewycky
one Value set. This is faster because we only need to use the set when there isn't already an entry in the map. No functionality change! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126076 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-20If both operands are loads from stores in memory we can't use movlpd/movlpsEric Christopher
since one needs to be a register operand. Just use movss instead of forcing an operand into a register. Fixes PR9239 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126072 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-20This patch lets LLDB build as an LLVM subproject. LLDB is not built inStephen Wilson
parallel with the rest of the tools directory as it depends on Clang. This patch was first applied in r125956 and subsequently reverted in r125964 as it broke in-tree builds. Makefile.rules was fixed up in r126070 to handle missing optional directories for the in-tree case, so it should be safe now to bring this patch back in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126071 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-20Do not try to descend into optional build directories if they do notStephen Wilson
exist. This makes the build logic symmetric for both the in tree and out of tree cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126070 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-20Use explicit add_subdirectory's for LLVM target sublibraries insteadOscar Fuentes
of testing for its presence at cmake time. This way the build automatically regenerates the makefiles when a svn update brings in a new sublibrary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126068 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-20Fix typo.Nick Lewycky
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126065 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-19PR9218: SimplifyDemandedVectorElts can return a non-null value that is notEli Friedman
the instruction passed in. Make sure to account for this correctly, instead of looping infinitely. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126058 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-19Minor x86 README updates.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126054 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-19Add modules to codegen as soon as possible. This reduces the link timeRafael Espindola
of libxul from 12m31.084s to 7m1.359s. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126052 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-19Try to fix the MC/AsmParser/section.s failure on the llvm-x86_64-linux-vg_leakCameron Zwarich
bot. I am not sure if this is valid Valgrind exclusion file syntax, but the Internet seems to think so. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126051 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-19implement PR9264: disambiguating 'bt mem, imm' as a btl.Chris Lattner
This is reasonable to do since all bt-mem forms do the same thing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126047 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-19rewrite the memset_pattern pattern generation stuff to accept any 2/4/8/16-byteChris Lattner
constant, including globals. This makes us generate much more "pretty" pattern globals as well because it doesn't break it down to an array of bytes all the time. This enables us to handle stores of relocatable globals. This kicks in about 48 times in 254.gap, giving us stuff like this: @.memset_pattern40 = internal constant [2 x %struct.TypHeader* (%struct.TypHeader*, %struct.TypHeader*)*] [%struct.TypHeader* (%struct.TypHeader*, %struct .TypHeader*)* @IsFalse, %struct.TypHeader* (%struct.TypHeader*, %struct.TypHeader*)* @IsFalse], align 16 ... call void @memset_pattern16(i8* %scevgep5859, i8* bitcast ([2 x %struct.TypHeader* (%struct.TypHeader*, %struct.TypHeader*)*]* @.memset_pattern40 to i8* ), i64 %tmp75) nounwind git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126044 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-19Stores of null pointers should turn into memset, we weren't recognizingChris Lattner
them as splat values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126041 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-19Implement rdar://9009151, transforming strided loop stores ofChris Lattner
unsplatable values into memset_pattern16 when it is available (recent darwins). This transforms lots of strided loop stores of ints for example, like 5 in vpr: Formed memset: call void @memset_pattern16(i8* %4, i8* getelementptr inbounds ([16 x i8]* @.memset_pattern9, i32 0, i32 0), i64 %tmp25) from store to: {%3,+,4}<%11> at: store i32 3, i32* %scevgep, align 4, !tbaa !4 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126040 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-19Add the PARSE_ARGUMENTS CMake macro to LLVM so I can use it to cleanJeffrey Yasskin
up add_clang_unittest's calling convention. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126031 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-19Allow getting the address of the value in a PointerUnion or PointerIntPair ↵Argyrios Kyrtzidis
if one is confident enough that he knows what he is doing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126019 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-19Fix typos.Eric Christopher
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126018 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-19Add ImmutableMap methods 'manualRetain()', 'manualRelease()', and ↵Ted Kremenek
'getRootWithoutRetain()' to help more aggressively reclaim memory in the static analyzer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126011 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-19Do not emit empty DW_TAG_lexical_block DIEs. In one test case, size of ↵Devang Patel
debug info reduced by almost 7%. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126009 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-19DIE numbers do not add any value in this test. Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126008 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-19Give SplitAnalysis a VRM member to access VirtRegMap::getOriginal().Jakob Stoklund Olesen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126005 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-19Avoid dangling else warnings.Joerg Sonnenberger
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126004 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-19Missed member rename for naming convention.Jakob Stoklund Olesen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126003 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-19This method belonged in VirtRegMap.Jakob Stoklund Olesen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126002 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-19Separate timers for local and global splitting.Jakob Stoklund Olesen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126001 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-19Make "-opt [-emit-llvm]" work for .ll files.Mikhail Glushenkov
Patch by Kaelyn Uhrain! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126000 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-18Provide enums to build complex address calucation expressions.Devang Patel
(This is infact direct copy from DIFactory, which is disappearing soon.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125989 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-18Remove unused tag.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125988 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-18These tags are now covered by dwarf::TagString().Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125987 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-18Provide tag strings for llvm specific tags.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125986 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-18Do not lose debug info of an inlined function argument even if the argument ↵Devang Patel
is only used through GEPs. This time with a fix that avoids using invalidated DenseMap iterator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125984 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-18Now that -loop-idiom uses TargetLibraryInfo properly, it doesn'tChris Lattner
need to be pulled out of the pass manager when the user specifies -fno-builtin. It can intelligently determine which libcalls to optimize based on what is enabled in TargetLibraryInfo. This allows -fno-builtin-foo to work someday. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125981 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-18Use VirtRegMap's Virt2SplitMap to keep track of the original live range ↵Jakob Stoklund Olesen
before splitting. All new virtual registers created for spilling or splitting point back to their original. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125980 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-18add a way to disable all builtins, wire it up to opt's ↵Chris Lattner
-disable-simplifylibcalls flag. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125978 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-18Make loop-idiom use TargetLibraryInfo to determine whether it is allowedChris Lattner
to hack on memset, memcpy etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125974 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-18add memset and memcpy, though they are always available for now.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125973 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-18rearrange some comments, no functionality change.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125972 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-18Have opt set up a specific TargetLibraryInfo for modulesChris Lattner
with a triple. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125970 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-18CMake: updated list of tblgen source files.Oscar Fuentes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125969 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-18Move library stuff out of the toplevel CMakeLists.txt file.Oscar Fuentes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125968 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-18Add VirtRegMap::rewrite() and use it in the new register allocators.Jakob Stoklund Olesen
The rewriter works almost identically to -rewriter=trivial, except it also eliminates any identity copies. This makes the new register allocators independent of VirtRegRewriter.cpp which will be going away at the same time as RegAllocLinearScan. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125967 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-18Add FixedLenDecoderEmitter, the skeleton of a new disassembler emitter for ↵Owen Anderson
fixed-length instruction encodings. A major part of its (eventual) goal is to support a much cleaner separation between disassembly callbacks provided by the target and the disassembler emitter itself, i.e. not requiring hardcoding of knowledge in tblgen like the existing disassembly emitters do. The hope is that some day this will allow us to replace the existing non-Thumb ARM disassembler and remove some of the hacks the old one introduced to tblgen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125966 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-18introduce a new TargetLibraryInfo pass, which transformations can use toChris Lattner
query about available library functions. For now this just has memset_pattern16, which exists on darwin, but it can be extended for a bunch of other things in the future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125965 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-18Revert r125956, which broke the build if you _don't_ have lldb checked out.Owen Anderson
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125964 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-18Reapply r114997 now that the buildbots have been updated.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125960 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-18This patch lets LLDB build as an LLVM subproject. LLDB is not built inStephen Wilson
parallel with the rest of the tools directory as it depends on Clang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125956 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-18Fix style and a typoBruno Cardoso Lopes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125949 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-18Add assembly parsing support for "msr" and also fix its encoding. Also addBruno Cardoso Lopes
testcases for the disassembler to make sure it still works for "msr". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125948 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-18improve support for OpenBSD, patch by Amit Kulkarni!Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125943 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-18Expose getTypeName to the C API. Patch by Patrick Walton.Rafael Espindola
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125845 91177308-0d34-0410-b5e6-96231b3b80d8