summaryrefslogtreecommitdiffstats
path: root/llvm/include
Commit message (Collapse)AuthorAgeFilesLines
* Added support in MC for Directional Local Labels.Kevin Enderby2010-05-172-0/+74
| | | | llvm-svn: 103989
* More data/parsing support for tls directives. Add a few more testcasesEric Christopher2010-05-172-4/+8
| | | | | | and cleanup comments as well. llvm-svn: 103985
* MC: Add dyn_cast support to MCSection.Daniel Dunbar2010-05-174-4/+34
| | | | | | - Of questionable utility, since in general anything which wants to do this should probably be within a target specific hook, which can rely on the sections being of the appropriate type. However, it can be useful for short term hacks. llvm-svn: 103980
* Add some section and constant support for darwin TLS.Eric Christopher2010-05-172-1/+26
| | | | llvm-svn: 103974
* Optimize empty DenseMap iteration.Jakob Stoklund Olesen2010-05-171-2/+3
| | | | llvm-svn: 103962
* llvm-mc: Support reassignment of variables in one special case, when theDaniel Dunbar2010-05-171-5/+12
| | | | | | | | variable has not yet been used in an expression. This allows us to support a few cases that show up in real code (mostly because gcc generates it for Objective-C on Darwin), without giving up a reasonable semantic model for assignment. llvm-svn: 103950
* Remove unused member variable.Zhongxing Xu2010-05-171-2/+0
| | | | llvm-svn: 103936
* Add support for thiscall calling convention.Anton Korobeynikov2010-05-161-1/+6
| | | | | | Patch by Charles Davis and Steven Watanabe! llvm-svn: 103902
* improve portability to systems that don't have round, patch byChris Lattner2010-05-151-0/+3
| | | | | | Evzen Muller! llvm-svn: 103877
* Add reg_nodbg_iteratorJakob Stoklund Olesen2010-05-151-0/+14
| | | | llvm-svn: 103856
* Allow TargetLowering::getRegClassFor() to be called on illegal types. AlsoEvan Cheng2010-05-151-2/+2
| | | | | | | allow target to override it in order to map register classes to illegal but synthesizable types. e.g. v4i64, v8i64 for ARM / NEON. llvm-svn: 103854
* Teach two-address pass to do some coalescing while eliminating REG_SEQUENCEEvan Cheng2010-05-141-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | instructions. e.g. %reg1026<def> = VLDMQ %reg1025<kill>, 260, pred:14, pred:%reg0 %reg1027<def> = EXTRACT_SUBREG %reg1026, 6 %reg1028<def> = EXTRACT_SUBREG %reg1026<kill>, 5 ... %reg1029<def> = REG_SEQUENCE %reg1028<kill>, 5, %reg1027<kill>, 6, %reg1028, 7, %reg1027, 8, %reg1028, 9, %reg1027, 10, %reg1030<kill>, 11, %reg1032<kill>, 12 After REG_SEQUENCE is eliminated, we are left with: %reg1026<def> = VLDMQ %reg1025<kill>, 260, pred:14, pred:%reg0 %reg1029:6<def> = EXTRACT_SUBREG %reg1026, 6 %reg1029:5<def> = EXTRACT_SUBREG %reg1026<kill>, 5 The regular coalescer will not be able to coalesce reg1026 and reg1029 because it doesn't know how to combine sub-register indices 5 and 6. Now 2-address pass will consult the target whether sub-registers 5 and 6 of reg1026 can be combined to into a larger sub-register (or combined to be reg1026 itself as is the case here). If it is possible, it will be able to replace references of reg1026 with reg1029 + the larger sub-register index. llvm-svn: 103835
* Add some comments about undef.Dan Gohman2010-05-141-1/+6
| | | | llvm-svn: 103834
* Rename "HasCalls" in MachineFrameInfo to "AdjustsStack" to better describe whatBill Wendling2010-05-141-5/+14
| | | | | | | | | the variable actually tracks. N.B., several back-ends are using "HasCalls" as being synonymous for something that adjusts the stack. This isn't 100% correct and should be looked into. llvm-svn: 103802
* Add support to preserve type info for the variables that are removed by the ↵Devang Patel2010-05-141-1/+1
| | | | | | optimizer. llvm-svn: 103798
* Use PassManagerBase, to give clients the option of using eitherDan Gohman2010-05-141-7/+7
| | | | | | FunctionPassManager or regular PassManager. llvm-svn: 103773
* Add an isNodeHidden to the graph traits, to support definition ofDan Gohman2010-05-142-3/+24
| | | | | | subgraph views. llvm-svn: 103772
* Get rid of the bit twiddling to read / set OpActions and ValueTypeActions. ↵Evan Cheng2010-05-141-26/+10
| | | | | | The small saving in memory isn't worth the increase in runtime and code complexity in my opinion. llvm-svn: 103768
* Add AsmParser support for darwin tbss directive.Eric Christopher2010-05-142-0/+9
| | | | | | Nothing uses this yet. llvm-svn: 103757
* Fix typo.Nick Lewycky2010-05-141-1/+1
| | | | llvm-svn: 103755
* MC: Switch to completely lazy layout.Daniel Dunbar2010-05-141-0/+4
| | | | | | - The eliminates the last major algorithmic problem with MC. llvm-svn: 103754
* MC: Extend MCAsmLayout to explicitly track which fragments have been layed ↵Daniel Dunbar2010-05-141-0/+8
| | | | | | out, and enforce several invariants to LayoutFragment to ensure we only do layout in a sensible order. llvm-svn: 103753
* MC: Switch MCFragment to storing the layout order index, not its index in ↵Daniel Dunbar2010-05-141-5/+5
| | | | | | the file. llvm-svn: 103751
* MC: Change LayoutSection() to only do the section initializiation.Daniel Dunbar2010-05-141-11/+3
| | | | | | Also, elimminate MCAsmLayout::set*, which are no longer needed. llvm-svn: 103750
* Adding a v8i64 512-bit vector type. This will be used to model ARM NEON ↵Evan Cheng2010-05-132-20/+32
| | | | | | intrinsics which translate into a pair of vld / vst instructions that can load / store 8 consecutive 64-bit (D) registers. llvm-svn: 103746
* Eliminate use of magic numbers to access OpActions. It also has the effect ↵Evan Cheng2010-05-131-5/+7
| | | | | | of allowing more than 31 scalar value types. MAX_ALLOWED_VALUETYPE had already been updated to 64 a while back. llvm-svn: 103743
* Fix up LoadExtActions, TruncStoreActions, and IndexedModeActions ↵Evan Cheng2010-05-131-47/+47
| | | | | | representation and setter and getter's so they will continue to work if the number of scalar ValueType's exceeds 31. llvm-svn: 103742
* MC: Move Layout{Fragment,Section} into MCAsmLayout, and add LayoutFile().Daniel Dunbar2010-05-132-10/+12
| | | | llvm-svn: 103738
* Teach MachineLICM and MachineSink how to clear kill flags conservativelyDan Gohman2010-05-131-0/+4
| | | | | | when they move instructions. llvm-svn: 103737
* 80 col violation.Evan Cheng2010-05-131-1/+2
| | | | llvm-svn: 103733
* Add a utility function for conservatively clearing kill flags, and makeDan Gohman2010-05-131-0/+6
| | | | | | use of it in MachineCSE. llvm-svn: 103726
* MC: Factor out MCAssembler::ComputeFragmentSize.Daniel Dunbar2010-05-131-0/+6
| | | | llvm-svn: 103724
* Fix const ilist_node::get{Prev,Next}Node() to actually compile. Picky, picky.Daniel Dunbar2010-05-131-2/+2
| | | | llvm-svn: 103723
* MC: Add section layout order indices to MCSectionData.Daniel Dunbar2010-05-131-0/+6
| | | | llvm-svn: 103715
* MC: Add MCAsmLayout::FragmentReplaced() helper function.Daniel Dunbar2010-05-131-0/+3
| | | | llvm-svn: 103709
* MC: Eliminate MCSectionData::{,Address,File}Size, which can now be computed byDaniel Dunbar2010-05-132-29/+9
| | | | | | utility functions. llvm-svn: 103695
* MC: Add MCAlignFragment::OnlyAlignAddress bit. This is a bit of magic that ↵Daniel Dunbar2010-05-131-1/+11
| | | | | | says the align fragment shouldn't contribute to the logical section size, it is will be used for cleaning up the code to handle section alignment. llvm-svn: 103690
* MC: Add MCSectionData::AddressSize, which is the size of the address space ↵Daniel Dunbar2010-05-132-3/+15
| | | | | | consumed by the section. This can differ from both the section logical size, and the section size on disk (although the current code handles this without making an explicit distinction). llvm-svn: 103689
* MC: Move MCAlignFragment::EmitNops value out of the constructor.Daniel Dunbar2010-05-121-7/+8
| | | | llvm-svn: 103665
* MC: Eliminate MCZeroFillFragment, it is no longer needed.Daniel Dunbar2010-05-121-27/+1
| | | | llvm-svn: 103664
* MC: Switch MCFillFragment to storing total fill size instead of a count. ↵Daniel Dunbar2010-05-121-6/+10
| | | | | | This allows using ValueSize==0 to represent a virtual fill. llvm-svn: 103662
* MC: Drop support for alignment in ZeroFill fragment, we can just useDaniel Dunbar2010-05-121-8/+2
| | | | | | MCAlignFragments for this. llvm-svn: 103661
* Clear CachedFunctionInfo upon Pass::releaseMemory. Because ValueMap will abortNick Lewycky2010-05-121-0/+3
| | | | | | | | | | on RAUW of functions, this is a correctness issue instead of a mere memory usage problem. No testcase until the new MergeFunctions can land. llvm-svn: 103653
* MC: Factor out MCAssembler::LayoutFragmentDaniel Dunbar2010-05-121-0/+5
| | | | llvm-svn: 103649
* ADT: Add ilist_node::get{Prev,Next}Node, which return the adjacent node or null.Daniel Dunbar2010-05-121-0/+50
| | | | | | | | | | | | | | | | | | | | - This provides a convenient alternative to using something llvm::prior or manual iterator access, for example:: if (T *Prev = foo->getPrevNode()) ... instead of:: iterator it(foo); if (it != begin()) { --it; ... } - Chris, please review. llvm-svn: 103647
* MC: Simplify LayoutSection to just take the index of the section to layout.Daniel Dunbar2010-05-122-13/+10
| | | | llvm-svn: 103627
* MC: Track section layout order explicitly, and use to simplify.Daniel Dunbar2010-05-121-1/+20
| | | | llvm-svn: 103616
* Add support for movi32 of global values to the new (MC) asm printer.Rafael Espindola2010-05-121-1/+3
| | | | llvm-svn: 103576
* Added a trivial function to modify the flags field of MCSymbolData class. ↵Nathan Jeffords2010-05-121-0/+5
| | | | | | The function takes the value and a mask, and clears the mask bits before applying the value. llvm-svn: 103534
* MC/Mach-O/x86_64: Add a new hook for checking whether a particular section canDaniel Dunbar2010-05-121-0/+8
| | | | | | | | be diced into atoms, and adjust getAtom() to take this into account. - This fixes relocations to symbols in fixed size literal sections, for example. llvm-svn: 103532
OpenPOWER on IntegriCloud