summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* The SSAUpdater should avoid recursive traversals of the CFG, since that mayBob Wilson2010-04-011-15/+23
| | | | | | blow out the stack for really big functions. Start by fixing an easy case. llvm-svn: 100126
* - Avoid using floating point stores to implement memset unless the value is ↵Evan Cheng2010-04-015-14/+21
| | | | | | | | zero. - Do not try to infer GV alignment unless its type is sized. It's not possible to infer alignment if it has opaque type. llvm-svn: 100118
* Skip instructions until new scope is seen.Devang Patel2010-04-011-6/+18
| | | | llvm-svn: 100117
* Cosmetic changes.Devang Patel2010-04-011-5/+5
| | | | | | Update comment, rename a local variable. llvm-svn: 100116
* Remove accidental include and add a comment.Benjamin Kramer2010-04-011-2/+2
| | | | llvm-svn: 100107
* Various improvements to MemoryBuffer::getFile:Benjamin Kramer2010-04-011-17/+26
| | | | | | | | | | - Use a RAII object to close the FD. - Use sys::StrError instead of thread-unsafe strerror calls. - Recover gracefully if read returns zero. This works around an issue on DragonFlyBSD where /dev/null has an st_size of 136 but we can't read 136 bytes from it. llvm-svn: 100106
* Introduce ImmutableCallSite, useful for contexts where no mutationGabor Greif2010-04-015-70/+67
| | | | | | | | | is necessary. Inherits from new templated baseclass CallSiteBase<> which is highly customizable. Base CallSite on it too, in a configuration that allows full mutation. Adapt some call sites in analyses to employ ImmutableCallSite. llvm-svn: 100100
* Clean up this file a little, no functionality change. This is a subset of myNick Lewycky2010-04-011-11/+10
| | | | | | patch back in r94322. llvm-svn: 100097
* switch IRBuilder to use NewDebugLoc for locations insteadChris Lattner2010-04-011-3/+5
| | | | | | | | | | of raw mdnodes. This allows frontends to specify debug locations without ever creating an MDNode for the DILocation. This requires a corresponding clang/llvm-gcc change which I'll try to commit as simultaneously as possible. llvm-svn: 100095
* Fix sdisel memcpy, memset, memmove lowering:Evan Cheng2010-04-016-123/+179
| | | | | | | | | | | | | 1. Makes it possible to lower with floating point loads and stores. 2. Avoid unaligned loads / stores unless it's fast. 3. Fix some memcpy lowering logic bug related to when to optimize a load from constant string into a constant. 4. Adjust x86 memcpy lowering threshold to make it more sane. 5. Fix x86 target hook so it uses vector and floating point memory ops more effectively. rdar://7774704 llvm-svn: 100090
* Nehalem unaligned memory access is fast.Evan Cheng2010-04-013-2/+15
| | | | llvm-svn: 100089
* Switch the representation of the location in instruction fromChris Lattner2010-04-012-8/+28
| | | | | | | | | | | | | being a TrackingVH<MDNode> to a NewDebugLoc, shrinking sizeof(Instruction) a lot, and providing clients the ability to deal with locations in terms of NewDebugLoc instead of having to deal with Metadata. This is still fully compatible with all clients that *do* use MDNodes for everything of course. No functionality change. llvm-svn: 100088
* include header.Chris Lattner2010-04-011-0/+1
| | | | llvm-svn: 100087
* rewrite handling of forward ref'd instruction metadata Chris Lattner2010-04-012-9/+60
| | | | | | | | to used deferred resolution instead of creating a temporary node + rauw. There is no reason to create the temporary mdnode, then do rauw, then destroy it. llvm-svn: 100086
* fix a bug in DebugRecVH::deleted/allUsesReplacedWith. If an Chris Lattner2010-04-011-4/+7
| | | | | | | entry in the Scope+InlinedAt drops to a non-canonical form, we need to reset the idx member of both VH's to 0. llvm-svn: 100084
* no really, we don't need to copy strings around in the accessor.Chris Lattner2010-04-011-1/+1
| | | | llvm-svn: 100083
* eliminate a temporary smallvectorChris Lattner2010-04-012-13/+5
| | | | llvm-svn: 100082
* add a method to decode a DILocation into a NewDebugLoc.Chris Lattner2010-04-011-0/+15
| | | | llvm-svn: 100081
* Add aeskeygenassist intrinsic and rename all of the aes intrinsics toEric Christopher2010-04-011-21/+29
| | | | | | | aes instead of sse4.2. Add a brief todo for a subtarget flag and rework the aeskeygenassist instruction to more closely match the docs. llvm-svn: 100078
* update cmakefile.Chris Lattner2010-04-011-0/+1
| | | | llvm-svn: 100074
* Add a new "NewDebugLoc" class which will eventually replace DebugLoc,Chris Lattner2010-04-012-1/+314
| | | | | | | | | | | | and will replace the 'DbgInfo' member in Instruction. The benefit of NewDebugLoc is that it is compact (8 bytes vs 12/24 bytes for the DbgInfo member in Instruction on a 32/64 bit system), it means that we will end up not having to allocate MDNodes to represent the "DILocations" in common cases of -O0 -g, and it is much more efficient to get things out of than the MDNode. llvm-svn: 100072
* vml[as] are slow on 1136jf-s also.Jim Grosbach2010-04-011-1/+2
| | | | llvm-svn: 100066
* Reapply r100056. It doesn't look like it's the one that's causing a failure.Bill Wendling2010-04-011-35/+23
| | | | llvm-svn: 100065
* Revert r100056. It was causing a failure on MSVC.Bill Wendling2010-03-311-23/+35
| | | | llvm-svn: 100062
* Reverting 100048; it broke two Frontend debug info tests.Stuart Hastings2010-03-312-26/+10
| | | | llvm-svn: 100058
* Rewrite CorrectExtraCFGEdges() to make it more understandable.Bill Wendling2010-03-311-35/+23
| | | | | | | | | | * Set the "DestA" and "DestB" according to how they're understood by the method. I.e., if one or both of them should point to the "fall through" block, then point to the fall through block. * Improve the loop that removes superfluous edges to be more understandable. llvm-svn: 100056
* Debug info can now properly represent functions inside classes inside other ↵Stuart Hastings2010-03-312-10/+26
| | | | | | functions. Partial fix for Radar 7424645. llvm-svn: 100048
* Rewrite part of the SSAUpdater to be more careful about inserting redundantBob Wilson2010-03-311-150/+263
| | | | | | | | PHIs. The previous algorithm was unable to reliably detect when existing PHIs in a cycle can be reused. I'm still working on reducing a testcase. Radar 7711900. llvm-svn: 100047
* Fix a nasty dangling-pointer heisenbug that couldDale Johannesen2010-03-311-1/+5
| | | | | | | | | | | | | | | | | | generate wrong code pretty much anywhere AFAICT. A case that hits the bug reproducibly is impossible, but the situation was like this: Addr = ... Store -> Addr Addr2 = GEP , 0, 0 Store -> Addr2 Handling the first store, the code changed replaced Addr with a sunkaddr and deleted Addr, but not its table entry. Code in OptimizedBlock replaced Addr2 with a bitcast; if that happened to reuse the memory of Addr, the old table entry was erroneously found when handling the second store. llvm-svn: 100044
* reduce indentation, minor cleanups.Chris Lattner2010-03-311-38/+42
| | | | llvm-svn: 100042
* Reduce string trashing.Benjamin Kramer2010-03-311-2/+2
| | | | llvm-svn: 100038
* Use spaces, not tabsJakob Stoklund Olesen2010-03-311-1/+1
| | | | llvm-svn: 100037
* DwarfDebug: Allocate DIEValues with a BumpPtrAllocator. Most of them areBenjamin Kramer2010-03-314-32/+30
| | | | | | | | | POD-like anyway, so we don't even care about calling their d'tors (DIEBlock being the exception). ~6% less mallocs and ~1% compile time improvement on clang -O0 -g oggenc.c llvm-svn: 100035
* Comment the changes for r98218 and friends inside the source code.Bill Wendling2010-03-311-0/+5
| | | | llvm-svn: 100033
* Comment the changes for r98218 and friends inside the source code.Bill Wendling2010-03-312-0/+10
| | | | llvm-svn: 100031
* Fix PR6750. Don't try to merge a DomainValue with itself.Jakob Stoklund Olesen2010-03-311-0/+2
| | | | llvm-svn: 100016
* s/getNameStr/getName/Benjamin Kramer2010-03-311-3/+3
| | | | llvm-svn: 100011
* Bump SmallString size a bit to avoid malloc trashing.Benjamin Kramer2010-03-311-7/+3
| | | | llvm-svn: 100010
* AddSignalHandler was not releasing the critical section on win32.Torok Edwin2010-03-311-0/+1
| | | | | | Patch from Gianluigi Tiesi! llvm-svn: 100003
* reduce indentationChris Lattner2010-03-311-20/+21
| | | | llvm-svn: 99999
* tidy upChris Lattner2010-03-311-7/+8
| | | | llvm-svn: 99998
* microoptimize this hot method, also making it more Chris Lattner2010-03-311-3/+2
| | | | | | consistent with other similar ones. llvm-svn: 99997
* MI != 0 is checked in the assert right above this.Chris Lattner2010-03-311-1/+1
| | | | llvm-svn: 99995
* use the isDebugValue() predicate and pop_back_val()Chris Lattner2010-03-311-7/+7
| | | | llvm-svn: 99993
* assert is a function-like macro, not a control flow operator.Chris Lattner2010-03-311-14/+14
| | | | llvm-svn: 99992
* reduce indentation, fit in 80 cols and various other cosmetic cleanups.Chris Lattner2010-03-311-284/+300
| | | | llvm-svn: 99989
* use the optimized debug info apis in sdisel.Chris Lattner2010-03-311-19/+16
| | | | llvm-svn: 99986
* make irbuilder use the new optimized debug info accessors.Chris Lattner2010-03-311-13/+0
| | | | llvm-svn: 99984
* add new apis for getting/setting !dbg metadata on Chris Lattner2010-03-314-7/+11
| | | | | | | | | instructions. In addition to being a convenience, they are faster than the old apis, particularly when not going from an MDKindID like people should be doing. llvm-svn: 99982
* Replace V_SET0 with variants for each SSE execution domain.Jakob Stoklund Olesen2010-03-313-15/+26
| | | | llvm-svn: 99975
OpenPOWER on IntegriCloud