summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
...
* If a symbol is used as tls, mark it as tls even if not declare as so. ProbablyRafael Espindola2010-11-242-2/+54
| | | | | | fixes PR8659. llvm-svn: 120076
* include/llvm/System/system_error.h: ECANCELED is undefined on Cygwin-1.5.NAKAMURA Takumi2010-11-241-0/+4
| | | | llvm-svn: 120072
* Tweak ImmutableMap/ImmutableSet/ImmutableList APIsTed Kremenek2010-11-245-260/+235
| | | | | | | | | | to use lowercase letters for the start of most method names and to replace some method names with more descriptive names (e.g., "getLeft()" instead of "Left()"). No real functionality change. llvm-svn: 120070
* Generalize overflowLeaf to also handle overflows in branch nodes.Jakob Stoklund Olesen2010-11-241-29/+50
| | | | | | | This doesn't quite work yet because the calls to treeDecrement and treeIncrement operate at the leaf level, not on pathNode(Level) as required. llvm-svn: 120068
* add a MemoryBuffer::getOpenFile method, which turns an openChris Lattner2010-11-232-4/+16
| | | | | | file descriptor into a MemoryBuffer (and closes the FD). llvm-svn: 120065
* system_error: Add fixme.Michael J. Spencer2010-11-231-0/+3
| | | | llvm-svn: 120059
* Rename SimplifyDistributed to the more meaningfull name SimplifyByFactorizing.Duncan Sands2010-11-234-15/+15
| | | | llvm-svn: 120051
* The srem -> urem transform is not safe for any divisor that's not a power of ↵Benjamin Kramer2010-11-233-16/+14
| | | | | | | | | | two. E.g. -5 % 5 is 0 with srem and 1 with urem. Also addresses Frits van Bommel's comments. llvm-svn: 120049
* Replace calls to ConstantFoldInstruction with calls to SimplifyInstructionDuncan Sands2010-11-232-11/+12
| | | | | | | in two places that are really interested in simplified instructions, not constants. llvm-svn: 120044
* Constant folding here is pointless, because InstructionSimplifyDuncan Sands2010-11-231-8/+1
| | | | | | | (which does constant folding and more) is called a few lines later. llvm-svn: 120042
* Move the ARM reloc constants to Support/ELF.hJason W Kim2010-11-233-142/+142
| | | | llvm-svn: 120035
* Recognize sign/zero-extended constant BUILD_VECTORs for VMULL operations.Bob Wilson2010-11-232-13/+181
| | | | | | | We need to check if the individual vector elements are sign/zero-extended values. For now this only handles constants values. Radar 8687140. llvm-svn: 120034
* Fix copy-and-paste error in exception message.Bob Wilson2010-11-231-1/+1
| | | | llvm-svn: 120033
* InstCombine: Reduce "X shift (A srem B)" to "X shift (A urem B)" iff B is ↵Benjamin Kramer2010-11-233-10/+28
| | | | | | | | positive. This allows to transform the rem in "1 << ((int)x % 8);" to an and. llvm-svn: 120028
* Propagate LeftDistributes and RightDistributes into their only uses.Duncan Sands2010-11-231-6/+4
| | | | | | Stylistic improvement suggested by Frits van Bommel. llvm-svn: 120026
* Fix typo pointed out by Frits van Bommel and Marius Wachtler.Duncan Sands2010-11-231-1/+1
| | | | llvm-svn: 120025
* Exploit distributive laws (eg: And distributes over Or, Mul over Add, etc) in aDuncan Sands2010-11-235-42/+144
| | | | | | | | | | | | fairly systematic way in instcombine. Some of these cases were already dealt with, in which case I removed the existing code. The case of Add has a bunch of funky logic which covers some of this plus a few variants (considers shifts to be a form of multiplication), which I didn't touch. The simplification performed is: A*B+A*C -> A*(B+C). The improvement is to do this in cases that were not already handled [such as A*B-A*C -> A*(B-C), which was reported on the mailing list], and also to do it more often by not checking for "only one use" if "B+C" simplifies. llvm-svn: 120024
* Division by pow-of-2 is not cheap on SPU, do it with Kalle Raiskila2010-11-232-2/+22
| | | | | | shifts. llvm-svn: 120022
* Implement the rex64 prefix.Rafael Espindola2010-11-232-1/+5
| | | | llvm-svn: 120017
* Expand a little on the description of what InstructionSimplify does.Duncan Sands2010-11-232-5/+9
| | | | llvm-svn: 120016
* Clarify that constant folding of instructions applies when all operandsDuncan Sands2010-11-232-16/+18
| | | | | | | | are constant. There was in fact one exception to this (phi nodes) - so remove that exception (InstructionSimplify handles this so there should be no loss). llvm-svn: 120015
* Invalidate the layout on any relaxation, not just Instructions. Bug found by ↵Rafael Espindola2010-11-232-13/+14
| | | | | | | | David Meyer. While here, remove unused argument and rename UpdateForSlide to Invalidate. llvm-svn: 120009
* Produce a relocation for pcrel absolute values. Based on a patch by David Meyer.Rafael Espindola2010-11-232-8/+28
| | | | llvm-svn: 120006
* Optimize a common case in the Lengauer-Tarjan dominators algorithm. This gives aCameron Zwarich2010-11-231-2/+9
| | | | | | | | 9.7% speedup running domtree on test-suite. Reviewed by Chris Lattner. llvm-svn: 120003
* Revert functionality doug added in r98575 that was neverChris Lattner2010-11-232-24/+15
| | | | | | documented and only used by some clang stuff I just removed. llvm-svn: 120002
* Reuse data fragments while lowering. Patch by David Meyer.Rafael Espindola2010-11-232-28/+86
| | | | llvm-svn: 119999
* Fix formatting nits in the coding standards. Reviewed by clattner.Zhanyong Wan2010-11-231-14/+14
| | | | llvm-svn: 119998
* fix this harder.Chris Lattner2010-11-231-2/+2
| | | | llvm-svn: 119994
* fix a bug I introduced on the other side of the #ifdefChris Lattner2010-11-231-2/+2
| | | | llvm-svn: 119993
* reimplement SwapByteOrder.h in terms of overloading instead of Chris Lattner2010-11-233-53/+52
| | | | | | being in terms of excessively complex template logic. llvm-svn: 119992
* Renaming ISD::BIT_CONVERT to ISD::BITCAST to better reflect the LLVM IR concept.Wesley Peck2010-11-2330-1145/+1142
| | | | llvm-svn: 119990
* add a 'LLVMConstIntOfArbitraryPrecision' api to the C api,Chris Lattner2010-11-232-0/+11
| | | | | | patch by Greg Pfeil! llvm-svn: 119989
* duncan's spider sense was right, I completely reversed the conditionChris Lattner2010-11-232-12/+12
| | | | | | on this instcombine xform. This fixes a miscompilation of 403.gcc. llvm-svn: 119988
* filecheckizeChris Lattner2010-11-232-17/+22
| | | | llvm-svn: 119987
* Fixed some style issues (no _, no spc after !)Jason W Kim2010-11-221-6/+6
| | | | llvm-svn: 119986
* Remove duplicated constants. Thanks to Jason for noticing it.Rafael Espindola2010-11-222-42/+26
| | | | llvm-svn: 119985
* InstCombine: Implement X - A*-B -> X + A*B.Benjamin Kramer2010-11-223-16/+29
| | | | llvm-svn: 119984
* Make the <ARCH>ELFObjectWriter statics privateJason W Kim2010-11-221-0/+3
| | | | llvm-svn: 119982
* Fix misplaced statics.Jason W Kim2010-11-221-6/+5
| | | | llvm-svn: 119981
* Kill trailing whitespaceJason W Kim2010-11-221-3/+3
| | | | llvm-svn: 119979
* Refactor the ELFRelocationEntry (pull up) and move the arch-specific statics ↵Jason W Kim2010-11-221-46/+54
| | | | | | | | | | to inside the class where it belongs. Next step is to rationally break apart the RecordRelocation() Probably the step will be to have 1 member function for ech slot of the ELFRelocationEntry() llvm-svn: 119978
* Fix epilogue codegen to avoid leaving the stack pointer in an invalidEvan Cheng2010-11-229-37/+124
| | | | | | | | | | | | | | | | | state. Previously Thumb2 would restore sp from fp like this: mov sp, r7 sub, sp, #4 If an interrupt is taken after the 'mov' but before the 'sub', callee-saved registers might be clobbered by the interrupt handler. Instead, try restoring directly from sp: add sp, #4 Or, if necessary (with VLA, etc.) use a scratch register to compute sp and then restore it: sub.w r4, r7, #8 mov sp, r7 rdar://8465407 llvm-svn: 119977
* Add a newline.Mikhail Glushenkov2010-11-221-1/+2
| | | | llvm-svn: 119976
* llvmc: Make -march/-mcpu/-mtune behaviour more consistent with gcc.Mikhail Glushenkov2010-11-221-6/+6
| | | | llvm-svn: 119975
* If a GEP index simply advances by multiples of a type of zero size,Duncan Sands2010-11-223-16/+35
| | | | | | then replace the index with zero. llvm-svn: 119974
* Fix a bug with extractelement on SPU.Kalle Raiskila2010-11-222-2/+14
| | | | | | | In the attached testcase, the element was never extracted (missing rotate). llvm-svn: 119973
* Add basic CFI methods to the streamer interface.Rafael Espindola2010-11-224-7/+133
| | | | llvm-svn: 119972
* Move the "gep undef" -> "undef" transform from instcombine toDuncan Sands2010-11-222-7/+11
| | | | | | InstructionSimplify. llvm-svn: 119970
* Remove some #includes.Rafael Espindola2010-11-222-2/+3
| | | | llvm-svn: 119967
* Implement the "if (X == 6 || X == 4)" -> "if ((X|2) == 6)" optimization.Benjamin Kramer2010-11-223-11/+69
| | | | | | | This currently only catches the most basic case, a two-case switch, but can be extended later. llvm-svn: 119964
OpenPOWER on IntegriCloud