summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* Recommit 100158 now that the buildbots are happy again.Bob Wilson2010-04-021-21/+29
| | | | llvm-svn: 100177
* Remove FIXME - if there's a better way to do this it isn't here.Eric Christopher2010-04-021-3/+0
| | | | llvm-svn: 100176
* Revert the recent alignment changes. They're broken for -Os because,Dan Gohman2010-04-022-8/+2
| | | | | | | in particular, they end up aligning strings at 16-byte boundaries, and there's no way for GlobalOpt to check OptForSize. llvm-svn: 100172
* After trivial coalescing, the MI being visited may have become a copy. Avoid ↵Evan Cheng2010-04-021-1/+5
| | | | | | | | adding it to CSE hash table since copies aren't being considered for CSE and they may be deleted. rdar://7819990 llvm-svn: 100170
* Teach AnalyzeBranch, RemoveBranch and the branchDale Johannesen2010-04-0211-9/+111
| | | | | | | folder to be tolerant of debug info following the branch(es) at the end of a block. llvm-svn: 100168
* Disambiguate conditional expression for newer GCCs.Chandler Carruth2010-04-021-2/+2
| | | | llvm-svn: 100167
* Revert 100158 in case it is causing some of the buildbot problems.Bob Wilson2010-04-021-29/+21
| | | | llvm-svn: 100164
* Change variables which are exactly 16 bytes to be 16-byte-aligned too.Dan Gohman2010-04-021-1/+1
| | | | | | This fixes test/Transforms/GlobalOpt/gv-align.ll. llvm-svn: 100161
* Make globalopt refine global variable alignment.Dan Gohman2010-04-021-1/+7
| | | | llvm-svn: 100160
* Check for terminating conditions before adding PHIs to the worklists.Bob Wilson2010-04-021-21/+29
| | | | | | This is more efficient than adding them to the worklist and then ignoring them. llvm-svn: 100158
* If the bitcode reader input stream isn't a multiple of 4 bytes, it's moreDan Gohman2010-04-021-3/+7
| | | | | | | likely not a bitcode file at all, rather than being a bitcode file which is truncated. Check for this case and issue a more relevant error message. llvm-svn: 100156
* Remove trailing whitespace.Bob Wilson2010-04-011-5/+5
| | | | llvm-svn: 100148
* Rewrite another SSAUpdater function to avoid recursion.Bob Wilson2010-04-011-32/+46
| | | | llvm-svn: 100147
* Revert r100143.Eric Christopher2010-04-019-252/+39
| | | | llvm-svn: 100146
* Revert r100117.Devang Patel2010-04-011-18/+6
| | | | llvm-svn: 100145
* Add some switches helpful for debugging:David Greene2010-04-018-39/+249
| | | | | | | | | | | | | | | | | | | | | | | -print-before=<Pass Name> Dump IR before running pass <Pass Name>. -print-before-all Dump IR before running each pass. -print-after-all Dump IR after running each pass. These are helpful when tracking down a miscompilation. It is easy to get IR dumps and do diffs on them, etc. To make this work well, add a new getPrinterPass API to Pass so that each kind of pass (ModulePass, FunctionPass, etc.) can create a Pass suitable for dumping out the kind of object the Pass works on. llvm-svn: 100143
* In 64-bit mode, use i64 to lower memcpy / memset instead of f64.Evan Cheng2010-04-011-0/+1
| | | | llvm-svn: 100137
* Do not eagerly record known previous location. DBG_VALUE may not cause a new ↵Devang Patel2010-04-011-1/+2
| | | | | | label due to one or other reason. llvm-svn: 100134
* Skip checking preferred alignment of GVs defined in other translation units ↵Evan Cheng2010-04-011-1/+1
| | | | | | all together. llvm-svn: 100133
* Add comments about DstAlign and SrcAlign.Evan Cheng2010-04-014-6/+26
| | | | llvm-svn: 100132
* Change another SSAUpdater function to avoid recursion.Bob Wilson2010-04-011-18/+24
| | | | llvm-svn: 100131
* Simplify the code to check for existing PHIs, now that it is only used inBob Wilson2010-04-011-30/+12
| | | | | | one place. This removes the template function added in svn 94690. llvm-svn: 100130
* 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
OpenPOWER on IntegriCloud