summaryrefslogtreecommitdiffstats
path: root/llvm/lib/MC/MCExpr.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Try to resolve symbol differences early, and if successful create a plainRafael Espindola2010-12-031-21/+52
| | | | | | | data fragment. This reduces the time to assemble the test in 8711 from 60s to 54s. llvm-svn: 120767
* Add a fast path to EvaluateSymbolicAdd. This avoids computing symbol addressesRafael Espindola2010-12-021-3/+11
| | | | | | | | which then avoids running EnsureValid. This cuts the assembly time of the testcase in PR8711 from 2:50 minutes to 1 minute. llvm-svn: 120697
* Fix typo.Jim Grosbach2010-11-171-1/+1
| | | | llvm-svn: 119542
* Change MCExpr::EvaluateAsRelocatableImpl of variables to return the originalRafael Espindola2010-11-151-3/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | variable if recursing fails to simplify it. Factor AliasedSymbol to be a method of MCSymbol. Update MCAssembler::EvaluateFixup to match the change in EvaluateAsRelocatableImpl. Remove the WeakRefExpr hack, as the object writer now sees the weakref with no extra effort needed. Nothing else is using MCTargetExpr, but keep it for now. Now that the ELF writer sees relocations with aliases, handle .weak foo2 foo2: .weak bar2 .set bar2,foo2 .quad bar2 the same way gas does and produce a relocation with bar2. llvm-svn: 119152
* add targetoperand flags for jump tables, constant pool and block addressChris Lattner2010-11-151-4/+15
| | | | | | | | | | | | | | nodes to indicate when ha16/lo16 modifiers should be used. This lets us pass PowerPC/indirectbr.ll. The one annoying thing about this patch is that the MCSymbolExpr isn't expressive enough to represent ha16(label1-label2) which we need on PowerPC. I have a terrible hack in the meantime, but this will have to be revisited at some point. Last major conversion item left is global variable references. llvm-svn: 119105
* reimplement ppc asmprinter "toc" handling to use a VariantKindChris Lattner2010-11-141-1/+2
| | | | | | | | on the operand, required for .o file writing and fixing the PowerPC/mult-alt-generic-powerpc64.ll failure with the new instprinter. llvm-svn: 119087
* Update ARMConstantPoolValue to not use a modifier string. Use an explicitJim Grosbach2010-11-101-1/+11
| | | | | | | VariantKind marker to indicate the additional information necessary. Update MC to handle the new Kinds. rdar://8647623 llvm-svn: 118671
* Implement TLSLD.Rafael Espindola2010-10-281-0/+2
| | | | llvm-svn: 117547
* Implement DTPOFF.Rafael Espindola2010-10-281-0/+2
| | | | llvm-svn: 117546
* Implement TLSLDM.Rafael Espindola2010-10-281-0/+2
| | | | llvm-svn: 117544
* Implement VK_GOTNTPOFF and switch RelocNeedsGOT to use VariantKind.Rafael Espindola2010-10-281-0/+2
| | | | llvm-svn: 117543
* Do not recurse into symbol refs that have a variant kind. This prevents usRafael Espindola2010-10-211-1/+1
| | | | | | from losing the variant when producing a relocation on an alias. llvm-svn: 117037
* Add a MCObjectFormat class so that code common to all targets that use aRafael Espindola2010-10-161-27/+39
| | | | | | | | | | | | single object format can be shared. This also adds support for mov zed+(bar-foo), %eax on ELF and COFF targets. llvm-svn: 116675
* Changes EvaluateAsAbsolute() to return the "current value" of the expressionKevin Enderby2010-09-301-1/+16
| | | | | | | | if we are given a Layout object, even in cases when the value is not fixed. This will be needed by the final patch for the dwarf .loc support to size a new MCDwarf fragment needed to build and emit dwarf line number tables. llvm-svn: 115155
* Add support for ELF PLT references for ARM MC asm printing. Adding aJim Grosbach2010-09-221-3/+6
| | | | | | | | new VariantKind to the MCSymbolExpr seems like overkill, but I'm not sure there's a more straightforward way to get the printing difference captured. (i.e., x86 uses @PLT, ARM uses (PLT)). llvm-svn: 114613
* Convert some tab stops into spaces.Duncan Sands2010-07-121-3/+3
| | | | llvm-svn: 108130
* Start adding mach-o tls reloc support.Eric Christopher2010-05-261-0/+2
| | | | llvm-svn: 104651
* Add support for movi32 of global values to the new (MC) asm printer.Rafael Espindola2010-05-121-1/+9
| | | | llvm-svn: 103576
* MC: Rename MCSymbol::{g,s}etValue -> MCSymbol::{g,s}etVariableValue.Daniel Dunbar2010-05-051-1/+1
| | | | llvm-svn: 103095
* Rip out the 'is temporary' nonsense from the MCContext interface toChris Lattner2010-03-301-6/+0
| | | | | | | | | create symbols. It is extremely error prone and a source of a lot of the remaining integrated assembler bugs on x86-64. This fixes rdar://7807601. llvm-svn: 99902
* MC: Fix refacto in MCExpr evaluation, I mistakenly replaced a fragment ↵Daniel Dunbar2010-03-251-2/+2
| | | | | | | | address with a symbol address. - This fixes the integrated-as nightly test regressions. llvm-svn: 99466
* MC: Direct all {fragment,section,symbol} address access through the ↵Daniel Dunbar2010-03-241-2/+2
| | | | | | MCAsmLayout object. llvm-svn: 99380
* MC: Sprinkle in some more interesting statistics.Daniel Dunbar2010-03-231-0/+10
| | | | llvm-svn: 99350
* llvm-mc: Fast path EvaluateAbsolute of constants.Daniel Dunbar2010-03-231-0/+6
| | | | llvm-svn: 99348
* MCValue: Change to holding MCSymbolRefExprs instead of MCSymbols, we will ↵Daniel Dunbar2010-03-181-20/+24
| | | | | | need this for accessing to symbol modifiers. llvm-svn: 98791
* MC: Allow modifiers in MCSymbolRefExpr, and eliminate X86MCTargetExpr.Daniel Dunbar2010-03-151-5/+51
| | | | | | | - Although it would be nice to allow this decoupling, the assembler needs to be able to reason about MCSymbolRefExprs in too many places to make this viable. We can use a target specific encoding of the variant if this becomes an issue. - This patch also extends llvm-mc to support parsing of the modifiers, as opposed to lumping them in with the symbol. llvm-svn: 98592
* MC: Fix a crash on invalid, attempting to evaluate undefined symbols.Daniel Dunbar2010-03-141-3/+4
| | | | llvm-svn: 98464
* MC: Constify MCAsmLayout argument to MCExpr::EvaluteAs...Daniel Dunbar2010-03-121-2/+3
| | | | llvm-svn: 98380
* MC/Mach-O: Implement "absolutizing" semantics of .set, by evaluating the ↵Daniel Dunbar2010-03-111-2/+20
| | | | | | assembly time value of variables. llvm-svn: 98241
* MC: Sketch initial MCAsmLayout class, which encapsulates the current layout ↵Daniel Dunbar2010-03-111-8/+8
| | | | | | of an assembly file. The MCAsmLayout is also available for use by MCExpr::EvaluateAs{Absolute,Relocatable}, to allow target specific hooks and "absolutizing" of symbols. llvm-svn: 98227
* set the temporary bit on MCSymbols correctly.Chris Lattner2010-03-101-0/+5
| | | | llvm-svn: 98124
* Document that MCExpr::Mod is actually remainder.Dan Gohman2010-02-081-2/+2
| | | | | | | | | | | Document that MCExpr::Div, Mod, and the comparison operators are all signed operators. Document that the comparison operators' results are target-dependent. Document that the behavior of shr is target-dependent. llvm-svn: 95619
* don't make hte dtor private or we can't construct the class.Chris Lattner2010-02-081-1/+1
| | | | llvm-svn: 95587
* add scaffolding for target-specific MCExprs.Chris Lattner2010-02-081-0/+6
| | | | llvm-svn: 95559
* remove the MAI argument to MCExpr::print and switch overthing to use << when ↵Chris Lattner2010-01-181-11/+7
| | | | | | printing them. llvm-svn: 93699
* now that MCSymbol::print doesn't use it's MAI argument, we can Chris Lattner2010-01-171-7/+4
| | | | | | | remove it and change all the code that prints MCSymbols to use << instead, which is much simpler and cleaner. llvm-svn: 93695
* Change errs() to dbgs().David Greene2010-01-051-2/+3
| | | | llvm-svn: 92630
* Pass StringRef by value.Daniel Dunbar2009-11-061-2/+1
| | | | llvm-svn: 86251
* MC: Remove unneeded context argument to MCExpr::Evaluate*.Daniel Dunbar2009-10-161-7/+7
| | | | llvm-svn: 84233
* MC: Move assembler variable values from MCContext to MCSymbol.Daniel Dunbar2009-10-161-2/+5
| | | | llvm-svn: 84229
* MC: Switch MCContext value table to storing MCExprs.Daniel Dunbar2009-10-161-4/+3
| | | | llvm-svn: 84228
* add a helper method for creating MCSymbol and MCSymbolRefExpr atChris Lattner2009-09-161-0/+6
| | | | | | the same time. llvm-svn: 81984
* parenthesize symbol names that start with $, fixing X86/dollar-name.ll withChris Lattner2009-09-081-2/+13
| | | | | | the new asmprinter. llvm-svn: 81269
* Print "X-42" instead of "X+-42".Chris Lattner2009-09-081-1/+11
| | | | llvm-svn: 81203
* make formatting of expressions more closely match the existing asmprinter.Chris Lattner2009-09-081-6/+19
| | | | llvm-svn: 81202
* tidy whitespace.Chris Lattner2009-09-081-7/+4
| | | | llvm-svn: 81201
* Thread an MCAsmInfo pointer through the various MC printing APIs, Chris Lattner2009-09-031-6/+6
| | | | | | | and fix a few things using << on MCSymbols to use ->print(). No functionality change other than unbreaking my previous patch. llvm-svn: 80890
* llvm-mc: Add MCExpr::{dump,print}.Daniel Dunbar2009-08-311-0/+67
| | | | llvm-svn: 80570
* llvm-mc: Switch MCExpr construction to using static member functions, and ↵Daniel Dunbar2009-08-311-8/+28
| | | | | | taking the MCContext (which now owns all MCExprs). llvm-svn: 80569
* llvm-mc: Move AsmExpr into MC lib (as MCExpr).Daniel Dunbar2009-08-311-0/+162
llvm-svn: 80567
OpenPOWER on IntegriCloud