Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Early exit if we don't have invokes. The 'Unwinds' vector isn't modified unless | Bill Wendling | 2011-01-07 | 1 | -219/+219 |
| | | | | | | we have invokes, so there is no functionality change here. llvm-svn: 122990 | ||||
* | Fix the other problem reported in PR8582. Testcase and patch by | Duncan Sands | 2011-01-06 | 1 | -0/+5 |
| | | | | | | Nadav Rotem. llvm-svn: 122983 | ||||
* | Add some fairly duplicated code to let type legalization split illegal | Eric Christopher | 2011-01-06 | 3 | -0/+141 |
| | | | | | | typed atomics. This will lower exclusively to libcalls at the moment. llvm-svn: 122979 | ||||
* | With Benjamin's recent amazing patches, we should be able to do even better ↵ | Chris Lattner | 2011-01-06 | 1 | -0/+13 |
| | | | | | | things :) llvm-svn: 122978 | ||||
* | use isNullValue() to simplify code, add an assert. | Chris Lattner | 2011-01-06 | 1 | -5/+6 |
| | | | | llvm-svn: 122977 | ||||
* | Emit 128 bit constant. | Devang Patel | 2011-01-06 | 2 | -10/+38 |
| | | | | | | This fixes PR 8913 crash. llvm-svn: 122971 | ||||
* | PR8921: LDM/POP do not support interworking prior to v5t. | Bob Wilson | 2011-01-06 | 2 | -2/+3 |
| | | | | llvm-svn: 122970 | ||||
* | Remove extra whitespace. | Bob Wilson | 2011-01-06 | 1 | -2/+2 |
| | | | | llvm-svn: 122969 | ||||
* | Fix comment typo. | Bob Wilson | 2011-01-06 | 1 | -1/+1 |
| | | | | llvm-svn: 122968 | ||||
* | Add a note from llvmdev, this time with more info. | Benjamin Kramer | 2011-01-06 | 1 | -0/+26 |
| | | | | llvm-svn: 122966 | ||||
* | Fixed parsing of hex floats. | Abramo Bagnara | 2011-01-06 | 1 | -4/+4 |
| | | | | llvm-svn: 122963 | ||||
* | Correctly disassemble truncated asm. | Rafael Espindola | 2011-01-06 | 1 | -2/+4 |
| | | | | | | Patch by Richard Simth. llvm-svn: 122962 | ||||
* | InstCombine: Turn _chk functions into the "unsafe" variant if length and max ↵ | Benjamin Kramer | 2011-01-06 | 1 | -0/+2 |
| | | | | | | | | langth are equal. This happens when we take the (non-constant) length from a malloc. llvm-svn: 122961 | ||||
* | EarlyCSE does this now (and GVN always did it). | Benjamin Kramer | 2011-01-06 | 1 | -11/+0 |
| | | | | llvm-svn: 122960 | ||||
* | InstCombine: If we call llvm.objectsize on a malloc call we can replace it ↵ | Benjamin Kramer | 2011-01-06 | 2 | -24/+5 |
| | | | | | | with the size passed to malloc. llvm-svn: 122959 | ||||
* | InstCombine: Teach llvm.objectsize folding to look through GEPs. | Benjamin Kramer | 2011-01-06 | 1 | -50/+41 |
| | | | | llvm-svn: 122958 | ||||
* | Remove dead code and silence warnings. | Benjamin Kramer | 2011-01-06 | 2 | -6/+4 |
| | | | | llvm-svn: 122957 | ||||
* | Use movups to lower memcpy and memset even if it's not fast (like corei7). | Evan Cheng | 2011-01-06 | 1 | -5/+1 |
| | | | | | | | | The theory is it's still faster than a pair of movq / a quad of movl. This will probably hurt older chips like P4 but should run faster on current and future Intel processors. rdar://8817010 llvm-svn: 122955 | ||||
* | add a note about object size from drystone, add a poorly optimized loop from ↵ | Chris Lattner | 2011-01-06 | 1 | -0/+79 |
| | | | | | | 179.art. llvm-svn: 122954 | ||||
* | add a trivial instcombine missed in Dhrystone | Chris Lattner | 2011-01-06 | 1 | -0/+37 |
| | | | | llvm-svn: 122953 | ||||
* | Re-implement r122936 with proper target hooks. Now getMaxStoresPerMemcpy | Evan Cheng | 2011-01-06 | 5 | -21/+25 |
| | | | | | | | etc. takes an option OptSize. If OptSize is true, it would return the inline limit for functions with attribute OptSize. llvm-svn: 122952 | ||||
* | implement constant folding support for an exotic constant expr: | Chris Lattner | 2011-01-06 | 1 | -1/+19 |
| | | | | | | | | | | ret i64 ptrtoint (i8* getelementptr ([1000 x i8]* @X, i64 1, i64 sub (i64 0, i64 ptrtoint ([1000 x i8]* @X to i64))) to i64) to "ret i64 1000". This allows us to correctly compute the trip count on a loop in PR8883, which occurs with std::fill on a char array. This allows us to transform it into a memset with a constant size. llvm-svn: 122950 | ||||
* | Revert r122936. I'll re-implement the change. | Evan Cheng | 2011-01-06 | 1 | -9/+2 |
| | | | | llvm-svn: 122949 | ||||
* | Add the CallInst optimizations that don't involve expanding inline assembly to | Cameron Zwarich | 2011-01-06 | 1 | -0/+7 |
| | | | | | | OptimizeInst() so that they can be used on a worklist instruction. llvm-svn: 122945 | ||||
* | Move the GEP handling in CodeGenPrepare to OptimizeInst(). | Cameron Zwarich | 2011-01-06 | 1 | -12/+12 |
| | | | | llvm-svn: 122944 | ||||
* | Split the optimizations in CodeGenPrepare that don't manipulate the iterators | Cameron Zwarich | 2011-01-06 | 1 | -41/+52 |
| | | | | | | | into a separate function, so that it can be called from a loop using a worklist rather than a loop traversing a whole basic block. llvm-svn: 122943 | ||||
* | Zap the last two -Wself-assign warnings in llvm. | Jakob Stoklund Olesen | 2011-01-06 | 2 | -8/+5 |
| | | | | | | Simplify RALinScan::DowngradeRegister with TRI::getOverlaps while we are there. llvm-svn: 122940 | ||||
* | Add the SpillPlacement analysis pass. | Jakob Stoklund Olesen | 2011-01-06 | 3 | -0/+460 |
| | | | | | | | | | | | | | | | | This pass precomputes CFG block frequency information that can be used by the register allocator to find optimal spill code placement. Given an interference pattern, placeSpills() will compute which basic blocks should have the current variable enter or exit in a register, and which blocks prefer the stack. The algorithm is ready to consume block frequencies from profiling data, but for now it gets by with the static estimates used for spill weights. This is a work in progress and still not hooked up to RegAllocGreedy. llvm-svn: 122938 | ||||
* | r105228 reduced the memcpy / memset inline limit to 4 with -Os to avoid blowing | Evan Cheng | 2011-01-06 | 1 | -2/+9 |
| | | | | | | | | up freebsd bootloader. However, this doesn't make much sense for Darwin, whose -Os is meant to optimize for size only if it doesn't hurt performance. rdar://8821501 llvm-svn: 122936 | ||||
* | Avoid zero extend bit test operands to pointer type if all the masks fit in | Evan Cheng | 2011-01-06 | 3 | -24/+42 |
| | | | | | | | the original type of the switch statement key. rdar://8781238 llvm-svn: 122935 | ||||
* | PR8919 - LLVM incorrectly generates "_alloca" as the stack probing call. That | Bill Wendling | 2011-01-06 | 1 | -0/+2 |
| | | | | | | | works only on MinGW32. On 64-bit, the function to call is "__chkstk". Patch by KS Sreeram! llvm-svn: 122934 | ||||
* | PR8918 - When used with MinGW64, LLVM generates a "calll __main" at the | Bill Wendling | 2011-01-06 | 1 | -2/+5 |
| | | | | | | | | beginning of the "main" function. The assembler complains about the invalid suffix for the 'call' instruction. The right instruction is "callq __main". Patch by KS Sreeram! llvm-svn: 122933 | ||||
* | Stop reallocating SunkAddrs for each basic block. When we move to an instruction | Cameron Zwarich | 2011-01-06 | 1 | -4/+10 |
| | | | | | | worklist, the key will need to become std::pair<BasicBlock*, Value*>. llvm-svn: 122932 | ||||
* | Reorder, rename, and document some members to make this easier to follow. | Owen Anderson | 2011-01-05 | 1 | -20/+23 |
| | | | | llvm-svn: 122929 | ||||
* | Optimize: | Evan Cheng | 2011-01-05 | 1 | -23/+39 |
| | | | | | | | | | r1025 = s/zext r1024, 4 r1026 = extract_subreg r1025, 4 to: r1026 = copy r1024 llvm-svn: 122925 | ||||
* | fix PR8900, a shuffle miscompilation. Patch by Nadav Rotem! | Chris Lattner | 2011-01-05 | 1 | -4/+4 |
| | | | | llvm-svn: 122921 | ||||
* | silence more self assignment warnings. | Chris Lattner | 2011-01-05 | 1 | -3/+3 |
| | | | | llvm-svn: 122920 | ||||
* | Add a hidden command line option to display edge bundle graphs as they are | Jakob Stoklund Olesen | 2011-01-05 | 1 | -0/+7 |
| | | | | | | calculated. llvm-svn: 122912 | ||||
* | Silence a warning from non-standard warning avoidance code. | Jakob Stoklund Olesen | 2011-01-05 | 1 | -1/+2 |
| | | | | llvm-svn: 122911 | ||||
* | 80-cols. | Eric Christopher | 2011-01-05 | 1 | -1/+2 |
| | | | | llvm-svn: 122909 | ||||
* | When computing the value on an edge, in certain cases LVI would fail to ↵ | Owen Anderson | 2011-01-05 | 1 | -0/+5 |
| | | | | | | | | compute the value range in the predecessor block, leading to an incorrect conclusion for the edge value. Found by inspection. llvm-svn: 122908 | ||||
* | Re-convert several of LazyValueInfo's internal maps to Dense{Map|Set}, and ↵ | Owen Anderson | 2011-01-05 | 1 | -33/+93 |
| | | | | | | | | | fix the issue in hasBlockValue() that was causing iterator invalidations. Many thanks to Dimitry Andric for tracking down those invalidations! llvm-svn: 122906 | ||||
* | fix some -Wself-assign warnings. | Chris Lattner | 2011-01-05 | 1 | -3/+3 |
| | | | | llvm-svn: 122893 | ||||
* | Add some more statistics to CodeGenPrepare. | Cameron Zwarich | 2011-01-05 | 1 | -0/+4 |
| | | | | llvm-svn: 122891 | ||||
* | Commit 122778 broke DWARF debug output when using the MBlaze backend. Fixed ↵ | Wesley Peck | 2011-01-05 | 3 | -0/+30 |
| | | | | | | by overriding TargetFrameInfo::getFrameIndexOffset to take into account the new frame index information. llvm-svn: 122889 | ||||
* | Add some stats to CodeGenPrepare to make it easier to speed it up without | Cameron Zwarich | 2011-01-05 | 1 | -3/+15 |
| | | | | | | regressing code quality. llvm-svn: 122887 | ||||
* | Support/PathV2: Implement remove_all. | Michael J. Spencer | 2011-01-05 | 1 | -0/+37 |
| | | | | llvm-svn: 122884 | ||||
* | Support/Windows/PathV2: Make directory iteration ignore . and .. | Michael J. Spencer | 2011-01-05 | 1 | -4/+24 |
| | | | | llvm-svn: 122883 | ||||
* | Support/Windows/PathV2: Fix remove to handle both files and directories. | Michael J. Spencer | 2011-01-05 | 1 | -7/+21 |
| | | | | llvm-svn: 122882 | ||||
* | Support/PathV2: Implement directory_entry::status. | Michael J. Spencer | 2011-01-05 | 1 | -0/+4 |
| | | | | llvm-svn: 122881 |