summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* End the line if we return early. Radar 9012638.Stuart Hastings2011-02-211-1/+3
| | | | llvm-svn: 126141
* Add a convenience tool for doing comparison builds of the LLVMDavid Greene2011-02-211-0/+706
| | | | | | | ecosystem. This is a handy utility for checking changes before committing them to the repository. llvm-svn: 126136
* Better OpenBSD support, patch by Amit Kulkarni. I have no way to testChris Lattner2011-02-211-0/+2
| | | | | | that this doesn't break gold, but it seems reasonable to me. llvm-svn: 126135
* Add XCore intrinsics for various instructions on ports.Richard Osborne2011-02-213-2/+74
| | | | llvm-svn: 126132
* Test case for r126127. Radar 9012638.Stuart Hastings2011-02-211-0/+5
| | | | llvm-svn: 126131
* The stack should be 16 byte aligned on 32 bit solaris. Patch by Yuri.Duncan Sands2011-02-212-3/+4
| | | | llvm-svn: 126130
* If the phi node was used by an unreachable instruction that ends up usingDuncan Sands2011-02-212-3/+4
| | | | | | | | | | | | itself without going via a phi node then we could return false here in spite of making a change. Also, tweak the comment because this method can (and always could) return true without deleting the original phi node. For example, if the phi node was used by a read-only invoke instruction which is used by another phi node phi2 which is only used by and only uses the invoke, then phi2 would be deleted but not the invoke instruction and not the original phi node. llvm-svn: 126129
* Fix to correctly support attribute((section("__DATA, __common"))).Stuart Hastings2011-02-212-8/+18
| | | | | | Radar 9012638. llvm-svn: 126127
* a serious "compare CSE" issue that is nontrivial to get right,Chris Lattner2011-02-211-0/+69
| | | | | | but which is responsible for us doing really bad things to 256.bzip2. llvm-svn: 126126
* fix a crasher in disabled code (on variable stride loops)Chris Lattner2011-02-211-1/+1
| | | | llvm-svn: 126125
* Simplify RecursivelyDeleteDeadPHINode. The only functionality changeDuncan Sands2011-02-212-28/+22
| | | | | | | | should be that if the phi is used by a side-effect free instruction with no uses then the phi and the instruction now get zapped (checked by the unittest). llvm-svn: 126124
* Target/X86/X86FastISel: [PR6275] Fix Win32's dllimport function with fastisel.NAKAMURA Takumi2011-02-212-2/+11
| | | | | | | "dllimport" function must not be GlobalVariable, but Function. It is enough to check with GlobalValue. test/CodeGen/X86/dll-linkage.ll is updated to check llc -O0. llvm-svn: 126110
* Generate correct Sparc32 ABI compliant code for functions that return a struct.Venkatraman Govindaraju2011-02-216-12/+89
| | | | llvm-svn: 126108
* CMake: Define LLVM_INCLUDE_TESTS in cmake/modules/HandleLLVMOptions.cmake. ↵NAKAMURA Takumi2011-02-212-1/+1
| | | | | | It affects testing stuff on clang-standalone build. llvm-svn: 126107
* CMake: Fix breakage on clang standalone build.NAKAMURA Takumi2011-02-211-1/+1
| | | | llvm-svn: 126106
* add a missed loop deletion case.Chris Lattner2011-02-211-0/+14
| | | | llvm-svn: 126103
* Add some (disabled code) to print out negative strides.Chris Lattner2011-02-211-3/+15
| | | | llvm-svn: 126102
* add an idiom that loop idiom could theoretically catch.Chris Lattner2011-02-211-0/+10
| | | | llvm-svn: 126101
* A lo/hi mul has higher latency than an imul r,ri, e.g. 5 cycles compared to 3Cameron Zwarich2011-02-211-35/+0
| | | | | | on Core 2 and Nehalem, so the code we generate is better than GCC's here. llvm-svn: 126100
* Use a vector of pairs to implement the section stack, not twoJoerg Sonnenberger2011-02-212-23/+18
| | | | | | independent vectors. llvm-svn: 126099
* The signed version of our "magic number" computation for the integer ↵Cameron Zwarich2011-02-214-8/+24
| | | | | | | | | | | | | approximation of a constant had a minor typo introduced when copying it from the book, which caused it to favor negative approximations over positive approximations in many cases. Positive approximations require fewer operations beyond the multiplication. In the case of division by 3, we still generate code that is a single instruction larger than GCC's code. llvm-svn: 126097
* Put targets on folders, if the IDE supports the feature.Oscar Fuentes2011-02-2011-6/+26
| | | | | | Requires CMake 2.8.3 or newer. llvm-svn: 126092
* Add some limited support for labels in org directives. Hopefully enough to fixRafael Espindola2011-02-202-1/+30
| | | | | | PR9245. llvm-svn: 126091
* Dispose modules early and only create codegen when the plugin is beingRafael Espindola2011-02-201-5/+19
| | | | | | used by the linker and not by nm or ar. llvm-svn: 126089
* Make RecursivelyDeleteDeadPHINode delete a phi node that has no users and add aNick Lewycky2011-02-203-50/+17
| | | | | | | | | test for that. With this change, test/CodeGen/X86/codegen-dce.ll no longer finds any instructions to DCE, so delete the test. Also renamed J and JP to I and IP in RecursivelyDeleteDeadPHINode. llvm-svn: 126088
* Fix some memory leaks and avoid looking in the hash tables twice.Rafael Espindola2011-02-202-35/+53
| | | | | | libxul links in 7m0.403s. llvm-svn: 126085
* Remove the link to Projects.html. It is useless for people working onOscar Fuentes2011-02-201-2/+0
| | | | | | Visual Studio. llvm-svn: 126083
* Move "A | ~(A & ?) -> -1" from InstCombine to InstructionSimplify.Benjamin Kramer2011-02-202-16/+18
| | | | llvm-svn: 126082
* InstCombine: Add a bunch of combines of the form x | (y ^ z).Benjamin Kramer2011-02-202-0/+135
| | | | | | | | | We usually catch this kind of optimization through InstSimplify's distributive magic, but or doesn't distribute over xor in general. "A | ~(A | B) -> A | ~B" hits 24 times on gcc.c. llvm-svn: 126081
* Fix 9267; Add vector zext support.Nadav Rotem2011-02-203-5/+78
| | | | | | | | The DAGCombiner folds the zext into complex load instructions. This patch prevents this optimization on vectors since none of the supported targets knows how to perform load+vector_zext in one instruction. llvm-svn: 126080
* Teach RecursivelyDeleteDeadPHINodes to handle multiple self-references. PatchNick Lewycky2011-02-203-6/+71
| | | | | | by Andrew Clinton! llvm-svn: 126077
* Instead of keeping two Value*->id# mappings, keep one Value->Value mapping andNick Lewycky2011-02-201-12/+14
| | | | | | | 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! llvm-svn: 126076
* If both operands are loads from stores in memory we can't use movlpd/movlpsEric Christopher2011-02-201-0/+4
| | | | | | | | | since one needs to be a register operand. Just use movss instead of forcing an operand into a register. Fixes PR9239 llvm-svn: 126072
* This patch lets LLDB build as an LLVM subproject. LLDB is not built inStephen Wilson2011-02-201-1/+6
| | | | | | | | | | | | 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. llvm-svn: 126071
* Do not try to descend into optional build directories if they do notStephen Wilson2011-02-201-1/+3
| | | | | | | exist. This makes the build logic symmetric for both the in tree and out of tree cases. llvm-svn: 126070
* Use explicit add_subdirectory's for LLVM target sublibraries insteadOscar Fuentes2011-02-2017-11/+42
| | | | | | | | | 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. llvm-svn: 126068
* Fix typo.Nick Lewycky2011-02-201-1/+1
| | | | llvm-svn: 126065
* PR9218: SimplifyDemandedVectorElts can return a non-null value that is notEli Friedman2011-02-192-2/+18
| | | | | | | the instruction passed in. Make sure to account for this correctly, instead of looping infinitely. llvm-svn: 126058
* Minor x86 README updates.Eli Friedman2011-02-191-20/+14
| | | | llvm-svn: 126054
* Add modules to codegen as soon as possible. This reduces the link timeRafael Espindola2011-02-191-30/+24
| | | | | | of libxul from 12m31.084s to 7m1.359s. llvm-svn: 126052
* Try to fix the MC/AsmParser/section.s failure on the llvm-x86_64-linux-vg_leakCameron Zwarich2011-02-191-4/+4
| | | | | | | bot. I am not sure if this is valid Valgrind exclusion file syntax, but the Internet seems to think so. llvm-svn: 126051
* implement PR9264: disambiguating 'bt mem, imm' as a btl.Chris Lattner2011-02-192-0/+7
| | | | | | | This is reasonable to do since all bt-mem forms do the same thing. llvm-svn: 126047
* rewrite the memset_pattern pattern generation stuff to accept any 2/4/8/16-byteChris Lattner2011-02-192-34/+39
| | | | | | | | | | | | | | | | | | 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 llvm-svn: 126044
* Stores of null pointers should turn into memset, we weren't recognizingChris Lattner2011-02-192-0/+27
| | | | | | them as splat values. llvm-svn: 126041
* Implement rdar://9009151, transforming strided loop stores ofChris Lattner2011-02-192-32/+152
| | | | | | | | | | | 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 llvm-svn: 126040
* Add the PARSE_ARGUMENTS CMake macro to LLVM so I can use it to cleanJeffrey Yasskin2011-02-191-0/+80
| | | | | | up add_clang_unittest's calling convention. llvm-svn: 126031
* Allow getting the address of the value in a PointerUnion or PointerIntPair ↵Argyrios Kyrtzidis2011-02-192-0/+19
| | | | | | | | if one is confident enough that he knows what he is doing. llvm-svn: 126019
* Fix typos.Eric Christopher2011-02-191-2/+2
| | | | llvm-svn: 126018
* Add ImmutableMap methods 'manualRetain()', 'manualRelease()', and ↵Ted Kremenek2011-02-191-1/+13
| | | | | | 'getRootWithoutRetain()' to help more aggressively reclaim memory in the static analyzer. llvm-svn: 126011
* Do not emit empty DW_TAG_lexical_block DIEs. In one test case, size of ↵Devang Patel2011-02-191-17/+20
| | | | | | debug info reduced by almost 7%. llvm-svn: 126009
OpenPOWER on IntegriCloud