Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Teach MachineBasicBlock::getFirstTerminator to ignore debug values. | Jakob Stoklund Olesen | 2011-01-13 | 2 | -5/+18 |
| | | | | | | | It will still return an iterator that points to the first terminator or end(), but there may be DBG_VALUE instructions following the first terminator. llvm-svn: 123384 | ||||
* | Check for empty structs, and for consistency, zero-element arrays. | Bob Wilson | 2011-01-13 | 1 | -2/+2 |
| | | | | llvm-svn: 123383 | ||||
* | Extend SROA to handle arrays accessed as homogeneous structs and vice versa. | Bob Wilson | 2011-01-13 | 1 | -14/+57 |
| | | | | | | | | | | | | | | | | | This is a minor extension of SROA to handle a special case that is important for some ARM NEON operations. Some of the NEON intrinsics return multiple values, which are handled as struct types containing multiple elements of the same vector type. The corresponding return types declared in the arm_neon.h header have equivalent arrays. We need SROA to recognize that it can split up those arrays and structs into separate vectors, even though they are not always accessed with the same type. SROA already handles loads and stores of an entire alloca by using insertvalue/extractvalue to access the individual pieces, and that code works the same regardless of whether the type is a struct or an array. So, all that needs to be done is to check for compatible arrays and homogeneous structs. llvm-svn: 123381 | ||||
* | Make SROA more aggressive with allocas containing padding. | Bob Wilson | 2011-01-13 | 1 | -34/+27 |
| | | | | | | | SROA only split up structs and arrays one level at a time, so padding can only cause trouble if it is located in between the struct or array elements. llvm-svn: 123380 | ||||
* | Remove some wrong code which fortunately was never executed (as explained in | Duncan Sands | 2011-01-13 | 1 | -6/+9 |
| | | | | | | the comment I added): an extern weak global may have a null address. llvm-svn: 123373 | ||||
* | The most common simplification missed by instsimplify in unoptimized bitcode | Duncan Sands | 2011-01-13 | 1 | -19/+70 |
| | | | | | | | | is "X != 0 -> X" when X is a boolean. This occurs a lot because of the way llvm-gcc converts gcc's conditional expressions. Add this, and a few other similar transforms for completeness. llvm-svn: 123372 | ||||
* | Model :upper16: and :lower16: as ARM specific MCTargetExpr. This is a step | Evan Cheng | 2011-01-13 | 11 | -84/+223 |
| | | | | | | | | in the right direction. It eliminated some hacks and will unblock codegen work. But it's far from being done. It doesn't reject illegal expressions, e.g. (FOO - :lower16:BAR). It also doesn't work in Thumb2 mode at all. llvm-svn: 123369 | ||||
* | Experiment with changing the default 32-bit linux stack alignment to | Eric Christopher | 2011-01-13 | 1 | -3/+3 |
| | | | | | | 16 bytes for PR8969. Update all testcases accordingly. llvm-svn: 123367 | ||||
* | Keep unnamed_addr when linking. | Rafael Espindola | 2011-01-13 | 1 | -0/+2 |
| | | | | llvm-svn: 123364 | ||||
* | Reject uses of unnamed_addr in declarations. | Rafael Espindola | 2011-01-13 | 3 | -3/+18 |
| | | | | llvm-svn: 123358 | ||||
* | Add a FIXME and two asserts for now in the ARMAsmParser when it sees .code 16 or | Kevin Enderby | 2011-01-13 | 1 | -2/+12 |
| | | | | | | | | .code 32 if the TargetMachine's isThumb() boolean does not match. The correct fix is to switch ARM subtargets at that point and is tracked by rdar://8856789 which is bigger task. llvm-svn: 123353 | ||||
* | Fix r123346 to handle scalar types too. | Dan Gohman | 2011-01-13 | 1 | -2/+1 |
| | | | | llvm-svn: 123352 | ||||
* | Add missing space in debug output | Jakob Stoklund Olesen | 2011-01-13 | 1 | -1/+1 |
| | | | | llvm-svn: 123351 | ||||
* | Change call to Error() to assert() | Jason W Kim | 2011-01-13 | 1 | -4/+1 |
| | | | | llvm-svn: 123350 | ||||
* | Style clean up - break up the breaks. | Jason W Kim | 2011-01-13 | 1 | -21/+40 |
| | | | | llvm-svn: 123347 | ||||
* | Apply the patch from PR8958, which allows llc to get slightly | Dan Gohman | 2011-01-12 | 1 | -1/+2 |
| | | | | | | further on the associated testcase before aborting. llvm-svn: 123346 | ||||
* | Support/Path: Deprecate PathV1::IsSymlink and replace all uses with ↵ | Michael J. Spencer | 2011-01-12 | 1 | -0/+8 |
| | | | | | | PathV2::is_symlink. llvm-svn: 123345 | ||||
* | Try again enabling LiveDebugVariables. | Jakob Stoklund Olesen | 2011-01-12 | 1 | -1/+1 |
| | | | | llvm-svn: 123342 | ||||
* | Added clarifying comment | Jason W Kim | 2011-01-12 | 1 | -0/+2 |
| | | | | llvm-svn: 123341 | ||||
* | JimG sez: "The value-kinds look like masks, but they're not consistently used | Jason W Kim | 2011-01-12 | 1 | -2/+2 |
| | | | | | | | | | | | that way, unfortunately. If you want to change them to work additively instead of a one-variant-kind-per-symbolref, that's great and I completely agree it's worth doing, but it really should be a separate patch. Until then, this isn't correct." So I am reverting this bit until a more opportune time. llvm-svn: 123340 | ||||
* | Don't emit a DBG_VALUE for a spill slot that the rewriter decided not to use ↵ | Jakob Stoklund Olesen | 2011-01-12 | 1 | -1/+2 |
| | | | | | | after all. llvm-svn: 123339 | ||||
* | Fix braino in dominator tree walk. | Jakob Stoklund Olesen | 2011-01-12 | 1 | -1/+1 |
| | | | | llvm-svn: 123338 | ||||
* | Sometimes, old virtual registers can linger on DBG_VALUE instructions. | Jakob Stoklund Olesen | 2011-01-12 | 1 | -1/+2 |
| | | | | | | Make sure we don't crash in that case, but simply turn them into %noreg instead. llvm-svn: 123335 | ||||
* | Teach VirtRegRewriter to update slot indexes when erasing instructions. | Jakob Stoklund Olesen | 2011-01-12 | 1 | -38/+26 |
| | | | | | | It was leaving dangling pointers in the slot index maps. llvm-svn: 123334 | ||||
* | Annotate VirtRegRewriter debug output with slot indexes. | Jakob Stoklund Olesen | 2011-01-12 | 1 | -2/+2 |
| | | | | llvm-svn: 123333 | ||||
* | Verify slot index ordering. | Jakob Stoklund Olesen | 2011-01-12 | 1 | -0/+25 |
| | | | | | | The slot indexes must be monotonically increasing through the function. llvm-svn: 123324 | ||||
* | Verify that machine instruction parent pointers are consistent. | Jakob Stoklund Olesen | 2011-01-12 | 1 | -0/+5 |
| | | | | llvm-svn: 123322 | ||||
* | Sort the register list based on the *actual* register numbers rather than the | Bill Wendling | 2011-01-12 | 1 | -5/+5 |
| | | | | | | enum values we give to them. <rdar://problem/8823730> llvm-svn: 123321 | ||||
* | Use SmallVector instead of SmallPtrSet and avoid non-deterministic behavior. | Devang Patel | 2011-01-12 | 1 | -3/+3 |
| | | | | llvm-svn: 123318 | ||||
* | Mostly undo r123297, but move the default case in EvaluateAsPCRel to the top | Matt Beaumont-Gay | 2011-01-12 | 1 | -3/+3 |
| | | | | | | of the switch block to appease GCC. llvm-svn: 123317 | ||||
* | Add another note taken from the gcc bugzilla. | Nick Lewycky | 2011-01-12 | 1 | -1/+20 |
| | | | | llvm-svn: 123315 | ||||
* | Implement RETURNADDR and FRAMEADDR lowering in SPARC backend. | Venkatraman Govindaraju | 2011-01-12 | 3 | -4/+85 |
| | | | | llvm-svn: 123310 | ||||
* | Remove SPARC backend getpcx instruction's Uses. Also, insert an assert to | Venkatraman Govindaraju | 2011-01-12 | 2 | -3/+5 |
| | | | | | | ensure %o7 is not assigned as the destination of getpcx instruction. llvm-svn: 123304 | ||||
* | revert 123144, reenabling the rest of memset formation. | Chris Lattner | 2011-01-12 | 1 | -3/+0 |
| | | | | llvm-svn: 123302 | ||||
* | Fix SPARC backend call instruction so that arguments passed through registers | Venkatraman Govindaraju | 2011-01-12 | 2 | -11/+24 |
| | | | | | | | are correctly marked as used instead of passing all possible argument registers as used. llvm-svn: 123301 | ||||
* | revert r123146 which disabled code that wasn't the root cause | Chris Lattner | 2011-01-12 | 1 | -2/+0 |
| | | | | | | of the bootstrap miscompare issue. llvm-svn: 123299 | ||||
* | revert r123149, reenabling an improvement to memcpyopt that wasn't | Chris Lattner | 2011-01-12 | 1 | -4/+2 |
| | | | | | | the source of the bootstrap problem. llvm-svn: 123298 | ||||
* | Prefer llvm_unreachable to assert(0) | Matt Beaumont-Gay | 2011-01-12 | 1 | -3/+3 |
| | | | | llvm-svn: 123297 | ||||
* | 1. Support ELF pcrel relocations for movw/movt: | Jason W Kim | 2011-01-12 | 5 | -5/+59 |
| | | | | | | | | R_ARM_MOVT_PREL and R_ARM_MOVW_PREL_NC. 2. Fix minor bug in ARMAsmPrinter - treat bitfield flag as a bitfield, not an enum. 3. Add support for 3 new elf section types (no-ops) llvm-svn: 123294 | ||||
* | Workaround for bug 8721. | Jason W Kim | 2011-01-11 | 1 | -0/+106 |
| | | | | | | .s Test added. llvm-svn: 123292 | ||||
* | The world is not ready for LiveDebugVariables yet. | Jakob Stoklund Olesen | 2011-01-11 | 1 | -1/+1 |
| | | | | llvm-svn: 123290 | ||||
* | Remove the PR8954 workaround. | Jakob Stoklund Olesen | 2011-01-11 | 1 | -4/+0 |
| | | | | llvm-svn: 123288 | ||||
* | Fix a non-deterministic loop in llvm::MergeBlockIntoPredecessor. | Jakob Stoklund Olesen | 2011-01-11 | 1 | -2/+2 |
| | | | | | | | | | DT->changeImmediateDominator() trivially ignores identity updates, so there is really no need for the uniqueing provided by SmallPtrSet. I expect this to fix PR8954. llvm-svn: 123286 | ||||
* | Enable LiveDebugVariables by default. | Jakob Stoklund Olesen | 2011-01-11 | 1 | -1/+1 |
| | | | | llvm-svn: 123282 | ||||
* | SPARC backend: correct ICC/FCC uses for ADDX and SELECT_CC | Venkatraman Govindaraju | 2011-01-11 | 1 | -15/+19 |
| | | | | llvm-svn: 123281 | ||||
* | Dial back the speculative fix for PR8954 a bit, so that we only recompute ↵ | Cameron Zwarich | 2011-01-11 | 1 | -1/+3 |
| | | | | | | | | dominators once at the beginning of GVN instead of once per iteration. llvm-svn: 123278 | ||||
* | Don't insert DBG_VALUE instructions after the first terminator. | Jakob Stoklund Olesen | 2011-01-11 | 1 | -0/+7 |
| | | | | | | | | For one, MachineBasicBlock::getFirstTerminator() doesn't understand what is happening, and it also makes sense to have all control flow run through the DBG_VALUE. llvm-svn: 123277 | ||||
* | Clean up ARM subtarget code by using Triple ADT. | Evan Cheng | 2011-01-11 | 6 | -13/+15 |
| | | | | llvm-svn: 123276 | ||||
* | Appropriately truncate debug info range in dwarf output. | Devang Patel | 2011-01-11 | 1 | -15/+5 |
| | | | | | | This is not yet completely enabled. llvm-svn: 123274 | ||||
* | Attempt to fix the bootstrap buildbot. Rafael says this works for him on ↵ | Cameron Zwarich | 2011-01-11 | 1 | -0/+1 |
| | | | | | | x86-64 Linux. llvm-svn: 123270 |