summaryrefslogtreecommitdiffstats
path: root/llvm/include
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix typo in doxy-comment.Nick Lewycky2011-04-061-1/+1
| | | | llvm-svn: 129028
* Replace const std::vector& with ArrayRef in the type creation APIs.Nick Lewycky2011-04-061-5/+5
| | | | llvm-svn: 129024
* EngineBuilder setter method for UseMCJIT was missing return value.Jim Grosbach2011-04-061-1/+2
| | | | llvm-svn: 129008
* Add an empty key for DebugLoc so that you can store an empty DebugLoc in aNick Lewycky2011-04-061-2/+10
| | | | | | DenseMap. llvm-svn: 128994
* Support using DebugLoc's in a DenseMap.Nick Lewycky2011-04-061-0/+20
| | | | llvm-svn: 128988
* RuntimeDyld should use the memory manager API.Jim Grosbach2011-04-061-3/+3
| | | | | | | | | | Start teaching the runtime Dyld interface to use the memory manager API for allocating space. Rather than mapping directly into the MachO object, we extract the payload for each object and copy it into a dedicated buffer allocated via the memory manager. For now, just do Segment64, so this works on x86_64, but not yet on ARM. llvm-svn: 128973
* Make the virtual destructor out-of-line so we have a key function.Chandler Carruth2011-04-051-1/+1
| | | | llvm-svn: 128964
* Provide an empty virtual destructor to go with the virtual methods inChandler Carruth2011-04-051-0/+1
| | | | | | this class. Clang was warning on this with -Wnon-virtual-dtor. llvm-svn: 128952
* Add support to encode function's template parameters.Devang Patel2011-04-052-2/+7
| | | | llvm-svn: 128947
* remove postdom frontiers, because it is dead. Forward dom frontiers areChris Lattner2011-04-054-35/+3
| | | | | | still used by RegionInfo :( llvm-svn: 128943
* Fix a typo.Andrew Trick2011-04-051-1/+1
| | | | llvm-svn: 128912
* Added *hidden* flags -print-options and -print-all-options soAndrew Trick2011-04-051-15/+280
| | | | | | | | | | | | | | | | | | | developers can see if their driver changed any cl::Option's. The current implementation isn't perfect but handles most kinds of options. This is nice to have when decomposing the stages of compilation and moving between different drivers. It's also a good sanity check when comparing results produced by different command line invocations that are expected to produce the comparable results. Note: This is not an attempt to prolong the life of cl::Option. On the contrary, it's a placeholder for a feature that must exist when cl::Option is replaced by a more appropriate framework. A new framework needs: a central option registry, dynamic name lookup, non-global containers of option values (e.g. per-module, per-function), *and* the ability to print options values and their defaults at any point during compilation. llvm-svn: 128910
* Use std::unique instead of a SmallPtrSet to ensure unique instructions in ↵Jakob Stoklund Olesen2011-04-051-0/+5
| | | | | | | | | | | UseSlots. This allows us to always keep the smaller slot for an instruction which is what we want when a register has early clobber defines. Drop the UsingInstrs set and the UsingBlocks map. They are no longer needed. llvm-svn: 128886
* Cache the fairly expensive last split point computation and provide a fastJakob Stoklund Olesen2011-04-051-0/+4
| | | | | | | | | inlined path for the common case. Most basic blocks don't contain a call that may throw, so the last split point os simply the first terminator. llvm-svn: 128874
* Revamp the SjLj "dispatch setup" intrinsic.Bill Wendling2011-04-051-1/+1
| | | | | | | | | | | | It needed to be moved closer to the setjmp statement, because the code directly after the setjmp needs to know about values that are on the stack. Also, the 'bitcast' of the function context was causing a dead load. This wouldn't be too horrible, except that at -O0 it wasn't optimized out, and because it wasn't using the correct base pointer (if there is a VLA), it would try to access a value from a garbage address. <rdar://problem/9130540> llvm-svn: 128873
* Layer the memory manager between the JIT and the runtime Dyld.Jim Grosbach2011-04-041-3/+26
| | | | | | | | | | | The JITMemory manager references LLVM IR constructs directly, while the runtime Dyld works at a lower level and can handle objects which may not originate from LLVM IR. Introduce a new layer for the memory manager to handle the interface between them. For the MCJIT, this layer will be almost entirely simply a call-through w/ translation between the IR objects and symbol names. llvm-svn: 128851
* Stop caching basic block index ranges now that SlotIndexes can keep up.Jakob Stoklund Olesen2011-04-041-0/+10
| | | | llvm-svn: 128821
* Region: Allow user control the printing style of the print function.Tobias Grosser2011-04-041-1/+5
| | | | | | Contributed by: etherzhhb@gmail.com llvm-svn: 128808
* IntrusiveRefCntPtr: in RefCountedBase and RefCountedBaseVPTR, makePeter Collingbourne2011-04-041-7/+7
| | | | | | | ref_cnt mutable and Retain/Release const to enable reference counted pointers to const objects llvm-svn: 128804
* Start migrating mach-o dumping facilities to the object file out of aEric Christopher2011-04-031-0/+20
| | | | | | separate executable. llvm-svn: 128801
* Add a set of C bindings for the Object interface.Eric Christopher2011-04-031-0/+77
| | | | | | Patch by Patrick Walton! llvm-svn: 128798
* Remove the LLVMContext& arguments from *Folder constructors, as they don't ↵Frits van Bommel2011-04-033-10/+6
| | | | | | seem to be used anywhere. llvm-svn: 128793
* PR9446: RecursivelyDeleteTriviallyDeadInstructions can delete the instructionEli Friedman2011-04-021-4/+0
| | | | | | | | | | | after the given instruction; make sure to handle that case correctly. (It's difficult to trigger; the included testcase involves a dead block, but I don't think that's a requirement.) While I'm here, get rid of the unnecessary warning about SimplifyInstructionsInBlock, since it should work correctly as far as I know. llvm-svn: 128782
* Add an InterferenceCache class for caching per-block interference ranges.Jakob Stoklund Olesen2011-04-021-0/+4
| | | | | | | | When the greedy register allocator is splitting multiple global live ranges, it tends to look at the same interference data many times. The InterferenceCache class caches queries for unaltered LiveIntervalUnions. llvm-svn: 128764
* Use basic block numbers as indexes when mapping slot index ranges.Jakob Stoklund Olesen2011-04-021-30/+19
| | | | | | This is more compact and faster than using DenseMap. llvm-svn: 128763
* Add a RemoveFromWorklist method to DCI. This is needed to do some complicatedCameron Zwarich2011-04-021-0/+1
| | | | | | | | transformations in target-specific DAG combines without causing DAGCombiner to delete the same node twice. If you know of a better way to avoid this (see my next patch for an example), please let me know. llvm-svn: 128758
* Various Instructions' resizeOperands() methods are only used to grow theJay Foad2011-04-011-4/+4
| | | | | | list of operands. Simplify and rename them accordingly. llvm-svn: 128708
* Issue libcalls __udivmod*i4 / __divmod*i4 for div / rem pairs.Evan Cheng2011-04-011-0/+10
| | | | | | rdar://8911343 llvm-svn: 128696
* Add XCore intrinsics for initializing / starting / synchronizing threads.Richard Osborne2011-03-311-0/+17
| | | | llvm-svn: 128633
* Fix whitespace.Michael J. Spencer2011-03-311-1/+1
| | | | llvm-svn: 128631
* Switch FileRemover from PathV1 to V2.Michael J. Spencer2011-03-311-8/+16
| | | | llvm-svn: 128630
* Tidy up. Whitespace and 80-columns.Jim Grosbach2011-03-302-26/+28
| | | | llvm-svn: 128583
* Don't add the same analysis implementation pair twice.Jakob Stoklund Olesen2011-03-301-0/+2
| | | | | | | | Prevent infinite growth of the list. Patch by José Fonseca! llvm-svn: 128568
* Reset StringMap's NumTombstones on clears and rehashes.Jakob Stoklund Olesen2011-03-301-0/+3
| | | | | | | | | | | | | StringMap was not properly updating NumTombstones after a clear or rehash. This was not fatal until now because the table was growing faster than NumTombstones could, but with the previous change of preventing infinite growth of the table the invariant (NumItems + NumTombstones <= NumBuckets) stopped being observed, causing infinite loops in certain situations. Patch by José Fonseca! llvm-svn: 128567
* Prevent infinite growth of SmallPtrSet instances.Jakob Stoklund Olesen2011-03-301-1/+1
| | | | | | | | Rehash but don't grow when full of tombstones. Patch by José Fonseca! llvm-svn: 128566
* Prevent infinite growth of SmallMap instances.Jakob Stoklund Olesen2011-03-301-14/+2
| | | | | | | | Rehash but don't grow when full of tombstones. Patch by José Fonseca! llvm-svn: 128565
* Prevent infinite growth of the DenseMap.Jakob Stoklund Olesen2011-03-301-2/+5
| | | | | | | | | | | | | | | | | | When the hash function uses object pointers all free entries eventually become tombstones as they are used at least once, regardless of the size. DenseMap cannot function with zero empty keys, so it double size to get get ridof the tombstones. However DenseMap never shrinks automatically unless it is cleared, so the net result is that certain tables grow infinitely. The solution is to make a fresh copy of the table without tombstones instead of doubling size, by simply calling grow with the current size. Patch by José Fonseca! llvm-svn: 128564
* Add APFloat::getExactInverse.Benjamin Kramer2011-03-301-0/+4
| | | | | | | | | | | | | | The idea is, that if an ieee 754 float is divided by a power of two, we can turn the division into a cheaper multiplication. This function sees if we can get an exact multiplicative inverse for a divisor and returns it if possible. This is the hard part of PR9587. I tested many inputs against llvm-gcc's frotend implementation of this optimization and didn't find any difference. However, floating point is the land of weird edge cases, so any review would be appreciated. llvm-svn: 128545
* Fix more zero length memset warnings.Jay Foad2011-03-301-1/+2
| | | | llvm-svn: 128543
* Add a comment on PHINode::Create().Jay Foad2011-03-301-0/+2
| | | | llvm-svn: 128540
* Remove PHINode::reserveOperandSpace(). Instead, add a parameter toJay Foad2011-03-302-20/+17
| | | | | | PHINode::Create() giving the (known or expected) number of operands. llvm-svn: 128537
* Revert a minor comment change inadvertently included with r128502.Bob Wilson2011-03-301-1/+1
| | | | llvm-svn: 128526
* Add intrinsics @llvm.arm.neon.vmulls and @llvm.arm.neon.vmullu.* back. FrontendsEvan Cheng2011-03-291-1/+5
| | | | | | | | | | | | | | | was lowering them to sext / uxt + mul instructions. Unfortunately the optimization passes may hoist the extensions out of the loop and separate them. When that happens, the long multiplication instructions can be broken into several scalar instructions, causing significant performance issue. Note the vmla and vmls intrinsics are not added back. Frontend will codegen them as intrinsics vmull* + add / sub. Also note the isel optimizations for catching mul + sext / zext are not changed either. First part of rdar://8832507, rdar://9203134 llvm-svn: 128502
* Instantiate a JITMemoryManager for MCJIT DyldJim Grosbach2011-03-291-1/+2
| | | | llvm-svn: 128485
* C-API: Include DataTypes.h instead of stdint.h.Daniel Dunbar2011-03-291-1/+1
| | | | llvm-svn: 128446
* Integrated-As: Add support for setting the AllowTemporaryLabels flag viaDaniel Dunbar2011-03-281-0/+9
| | | | | | integrated-as. llvm-svn: 128431
* MC: Add support for disabling "temporary label" behavior. Useful for debuggingDaniel Dunbar2011-03-281-0/+7
| | | | | | on Darwin. llvm-svn: 128430
* Again adding a C API to the disassembler for use by such tools as Darwin'sKevin Enderby2011-03-281-0/+106
| | | | | | | | | | | otool(1), this time with the needed fix for case sensitive file systems :) . This is a work in progress as the interface for producing symbolic operands is not done. But a hacked prototype using information from the object file's relocation entiries and replacing immediate operands with MCExpr's has been shown to work with no changes to the instrucion printer. These APIs will be moved into a dynamic library at some point. llvm-svn: 128415
* Constant folding support for calls to umul.with.overflow(), basically ↵Frits van Bommel2011-03-271-0/+1
| | | | | | identical to the smul.with.overflow() code. llvm-svn: 128379
* Collect and coalesce DBG_VALUE instructions before emitting the function.Jakob Stoklund Olesen2011-03-261-0/+4
| | | | | | | | | | | Correctly terminate the range of register DBG_VALUEs when the register is clobbered or when the basic block ends. The code is now ready to deal with variables that are sometimes in a register and sometimes on the stack. We just need to teach emitDebugLoc to say 'stack slot'. llvm-svn: 128327
OpenPOWER on IntegriCloud