aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm
Commit message (Collapse)AuthorAgeFilesLines
* Add new file Support/DataFlow.h.Edwin Török2008-04-021-0/+104
| | | | | | | It allows Use-Def and Def-Use relations to be treated as graphs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49088 91177308-0d34-0410-b5e6-96231b3b80d8
* Add new CC lowering rule: provide a list of registers, which can be 'shadowed',Anton Korobeynikov2008-04-021-3/+25
| | | | | | | | when some another register is used for argument passing. Currently is used on Win64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49079 91177308-0d34-0410-b5e6-96231b3b80d8
* Recommitting EH patch; this should answer most of theDale Johannesen2008-04-021-4/+0
| | | | | | | | | | | | | | | | | review feedback. -enable-eh is still accepted but doesn't do anything. EH intrinsics use Dwarf EH if the target supports that, and are handled by LowerInvoke otherwise. The separation of the EH table and frame move data is, I think, logically figured out, but either one still causes full EH info to be generated (not sure how to split the metadata correctly). MachineModuleInfo::needsFrameInfo is no longer used and is removed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49064 91177308-0d34-0410-b5e6-96231b3b80d8
* Change the MemoryBuffer::getFile* methods to take just a pointer to theChris Lattner2008-04-011-3/+3
| | | | | | | | | start of a filename, not a filename+length. All clients can produce a null terminated name, and the system api's require null terminated strings anyway. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49041 91177308-0d34-0410-b5e6-96231b3b80d8
* MappedFile is dead, remove it.Chris Lattner2008-04-011-85/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49035 91177308-0d34-0410-b5e6-96231b3b80d8
* Stub out some sys::Path::MapInFilePages/UnMapFilePages methods.Chris Lattner2008-04-011-0/+23
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49030 91177308-0d34-0410-b5e6-96231b3b80d8
* change the archive stuff to use MemoryBuffer instead of mappedfile.Chris Lattner2008-04-011-2/+2
| | | | | | | | MemoryBuffer is higher level and more closely matches the model needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49029 91177308-0d34-0410-b5e6-96231b3b80d8
* prune unneeded #includesChris Lattner2008-04-011-3/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49028 91177308-0d34-0410-b5e6-96231b3b80d8
* rewrite SourceFile to be in terms of MemoryBuffer, not MappedFile.Chris Lattner2008-04-011-16/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49027 91177308-0d34-0410-b5e6-96231b3b80d8
* Make MappedFile::map return a const correct pointer, don't leak address ↵Chris Lattner2008-04-011-4/+2
| | | | | | space on Unix platforms. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49026 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove the MappedFile::charBase member, rename base -> getBase() andChris Lattner2008-04-011-13/+3
| | | | | | | make getBase() return a const-correct pointer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49025 91177308-0d34-0410-b5e6-96231b3b80d8
* add an accessor.Chris Lattner2008-04-011-0/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49023 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove MappedFile support for mapping files for write and execChris Lattner2008-04-012-25/+5
| | | | | | | | and shared. This complicates the design, is not used, and probably doesn't even work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49022 91177308-0d34-0410-b5e6-96231b3b80d8
* remove extraneous #includeChris Lattner2008-04-011-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49021 91177308-0d34-0410-b5e6-96231b3b80d8
* update comment.Chris Lattner2008-04-011-2/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49010 91177308-0d34-0410-b5e6-96231b3b80d8
* cleanup the MappedFile API and comments. This removes and updatesChris Lattner2008-04-011-95/+40
| | | | | | | | | | tons of out of date comments (really nothing throws here!) and fixes some other fairly glaring issues: "size" used to return the size of the file *and* change it, depending on how you called it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49009 91177308-0d34-0410-b5e6-96231b3b80d8
* remove DEFINING_FILE_FOR for MappedFile.hChris Lattner2008-04-011-4/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49008 91177308-0d34-0410-b5e6-96231b3b80d8
* Move reMaterialize() from TargetRegisterInfo to TargetInstrInfo.Evan Cheng2008-03-312-8/+11
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48995 91177308-0d34-0410-b5e6-96231b3b80d8
* test commitEdwin Török2008-03-311-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48984 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix "Control reaches the end of non-void function" warnings, Chris Lattner2008-03-302-0/+4
| | | | | | | patch by David Chisnall. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48963 91177308-0d34-0410-b5e6-96231b3b80d8
* Cosmetic change.Evan Cheng2008-03-291-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48935 91177308-0d34-0410-b5e6-96231b3b80d8
* Rename getAnyLoad to getLoad is suggested by Evan.Duncan Sands2008-03-281-5/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48914 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement LegalizeTypes support for softfloat LOAD.Duncan Sands2008-03-271-0/+5
| | | | | | | | | In order to handle indexed nodes I had to introduce a new constructor, and since I was there I factorized the code in the various load constructors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48894 91177308-0d34-0410-b5e6-96231b3b80d8
* Avoid creating chain dependencies from CopyToReg nodes to load and storeDan Gohman2008-03-271-2/+1
| | | | | | | | | | | | | | | | | | | nodes. This doesn't currently have much impact the generated code, but it does produce simpler-looking SelectionDAGs, and consequently simpler-looking ScheduleDAGs, because there are fewer spurious dependencies. In particular, CopyValueToVirtualRegister now uses the entry node as the input chain dependency for new CopyToReg nodes instead of calling getRoot and depending on the most recent memory reference. Also, rename UnorderedChains to PendingExports and pull it up from being a local variable in SelectionDAGISel::BuildSelectionDAG to being a member variable of SelectionDAGISel, so that it doesn't have to be passed around to all the places that need it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48893 91177308-0d34-0410-b5e6-96231b3b80d8
* when a node is removed from an ilist, set its next/prev pointers toChris Lattner2008-03-271-0/+8
| | | | | | | | | | | | null. This means that uses of invalidated iterators will explode violently with: ilist:143: failed assertion `NodePtr && "++'d off the end of an ilist!"' instead of happening to work "most of the time". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48859 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a bug in Darwin EH: FDE->CIE pointer mustDale Johannesen2008-03-261-2/+9
| | | | | | | | be relocatable. Describe why .set is needed better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48848 91177308-0d34-0410-b5e6-96231b3b80d8
* Use a linked data structure for the uses lists of an SDNode, just like Roman Levenstein2008-03-262-62/+227
| | | | | | | | | | | | | | | LLVM Value/Use does and MachineRegisterInfo/MachineOperand does. This allows constant time for all uses list maintenance operations. The idea was suggested by Chris. Reviewed by Evan and Dan. Patch is tested and approved by Dan. On normal use-cases compilation speed is not affected. On very big basic blocks there are compilation speedups in the range of 15-20% or even better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48822 91177308-0d34-0410-b5e6-96231b3b80d8
* Add explicit keywords.Dan Gohman2008-03-254-7/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48801 91177308-0d34-0410-b5e6-96231b3b80d8
* A quick nm audit turned up several fixed tables and objects that wereDan Gohman2008-03-253-10/+11
| | | | | | | | marked read-write. Use const so that they can be allocated in a read-only segment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48800 91177308-0d34-0410-b5e6-96231b3b80d8
* Add optimize-for-size knob.Devang Patel2008-03-251-0/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48793 91177308-0d34-0410-b5e6-96231b3b80d8
* De-constify the input to the "operator >>" method as it is modified.Bill Wendling2008-03-251-1/+1
| | | | | | | Patch by dekruijf@cs.wisc.edu! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48782 91177308-0d34-0410-b5e6-96231b3b80d8
* Make a note of the fact that EmitOwnedPtr() has nothing to do with theSam Bishop2008-03-251-0/+2
| | | | | | | OwningPtr<> class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48763 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert r48676. I had plans for using it, but now it's just dead code.Owen Anderson2008-03-241-13/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48743 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove an unnecessary #include.Dan Gohman2008-03-241-1/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48729 91177308-0d34-0410-b5e6-96231b3b80d8
* Shrink the size of AllocationInst by using its SubclassDataDan Gohman2008-03-241-6/+3
| | | | | | | | field to store the alignment value instead of haing a separate field. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48727 91177308-0d34-0410-b5e6-96231b3b80d8
* Increasing the inline limit from (overly conservative) 200 to 300. Given ↵Evan Cheng2008-03-242-2/+16
| | | | | | | | | each BB costs 20 and each instruction costs 5, 200 means a 4 BB function + 24 instructions (actually less because caller's size also contributes to it). Furthermore, double the limit when more than 10% of the callee instructions are vector instructions. Multimedia kernels tend to love inlining. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48725 91177308-0d34-0410-b5e6-96231b3b80d8
* Use C-style comments :)Anton Korobeynikov2008-03-231-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48705 91177308-0d34-0410-b5e6-96231b3b80d8
* Add first proof-of-concept universal compiler driver framework basedAnton Korobeynikov2008-03-231-1/+1
| | | | | | | | | | on ideas mentioned in PR686. Written by Mikhail Glushenkov and contributed by Codedgers, Inc. Old llvmc will be removed soon after new one will have all its properties. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48699 91177308-0d34-0410-b5e6-96231b3b80d8
* Typo fixesAnton Korobeynikov2008-03-221-3/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48681 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a comment, and fix a bug where AllocateRW recurred to AllocateRWX ↵Owen Anderson2008-03-221-0/+8
| | | | | | instead of itself. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48677 91177308-0d34-0410-b5e6-96231b3b80d8
* Add an AllocateRW to match AllocateRWX.Owen Anderson2008-03-221-0/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48676 91177308-0d34-0410-b5e6-96231b3b80d8
* Teach DAG combiner to commute commutable binary nodes in order to achieve ↵Evan Cheng2008-03-221-0/+5
| | | | | | sdisel CSE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48673 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't include <map> in Pass.h, which doesn't need it. This requiresDan Gohman2008-03-216-1/+6
| | | | | | | adding <map> to many files that actually do need it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48667 91177308-0d34-0410-b5e6-96231b3b80d8
* Specialize FORCE_DEFINING_FILE_TO_BE_LINKED using a GCC trickDan Gohman2008-03-211-4/+17
| | | | | | | | | to avoid using constructor calls for static objects. This reduces the number of objects requiring static constructors in a typical LLVM build by around 20%. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48665 91177308-0d34-0410-b5e6-96231b3b80d8
* FunctionExtractorPass has been superceded by GVExtractorPassAndrew Lenharth2008-03-211-8/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48648 91177308-0d34-0410-b5e6-96231b3b80d8
* Make it possible to get an empty struct usingDuncan Sands2008-03-211-2/+3
| | | | | | | | | the new StructType::get method. The second NULL is to pacify the gcc warning mechanism. This patch compiles but is otherwise untested. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48645 91177308-0d34-0410-b5e6-96231b3b80d8
* Introduce a new node for holding call argumentDuncan Sands2008-03-213-30/+101
| | | | | | | | | | | | | | | | | | flags. This is needed by the new legalize types infrastructure which wants to expand the 64 bit constants previously used to hold the flags on 32 bit machines. There are two functional changes: (1) in LowerArguments, if a parameter has the zext attribute set then that is marked in the flags; before it was being ignored; (2) PPC had some bogus code for handling two word arguments when using the ELF 32 ABI, which was hard to convert because of the bogusness. As suggested by the original author (Nicolas Geoffray), I've disabled it for the moment. Tested with "make check" and the Ada ACATS testsuite. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48640 91177308-0d34-0410-b5e6-96231b3b80d8
* Undo 48570. Correctly match mmx shift instructions with an immediate operand.Evan Cheng2008-03-211-24/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48627 91177308-0d34-0410-b5e6-96231b3b80d8
* ubyte and sbyte? what are those?Nick Lewycky2008-03-201-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48585 91177308-0d34-0410-b5e6-96231b3b80d8
* Add intrinsics to match mmx shift builtin's with immediate operand.Evan Cheng2008-03-191-0/+24
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48569 91177308-0d34-0410-b5e6-96231b3b80d8