summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
...
* make mcasmstreamer handle expanding 8 byte integer constants to Chris Lattner2010-01-201-18/+4
| | | | | | | 4-byte constants if .quad isn't supported. Switch a bunch of methods used by the dwarf writer to use OutStreamer.EmitIntValue. llvm-svn: 93987
* give createAsmStreamer an 'isLittleEndian' argument.Chris Lattner2010-01-201-1/+2
| | | | llvm-svn: 93986
* If a instruction belongs to another function (and not current function) as ↵Devang Patel2010-01-201-4/+12
| | | | | | per debug info attached with the instruction then ignore the dangling lexical scope of this instruction. Such scopes are unreachable. llvm-svn: 93967
* Add some asserts to check SelectionDAG problems earlier.David Greene2010-01-201-0/+12
| | | | llvm-svn: 93960
* Move findDebugLoc somewhere more central. FixDale Johannesen2010-01-201-0/+17
| | | | | | | more cases where debug declarations affect debug line info. llvm-svn: 93953
* Fold (add x, shl(0 - y, n)) -> sub(x, shl(y, n)), to simplify some codeDan Gohman2010-01-191-0/+20
| | | | | | that SCEVExpander can produce when running on behalf of LSR. llvm-svn: 93949
* simplify the rest of fp constant printing.Chris Lattner2010-01-191-108/+34
| | | | llvm-svn: 93929
* simplify the code for printing x86 long double, don't do workChris Lattner2010-01-191-75/+22
| | | | | | for -fverbose-asm unless it's on. llvm-svn: 93926
* Identify predicate and optional-def operands when printing machineJakob Stoklund Olesen2010-01-191-0/+7
| | | | | | instructions. llvm-svn: 93925
* eliminate AsmPrinter::EmitZeros: just use MCStreamer directly.Chris Lattner2010-01-191-11/+4
| | | | llvm-svn: 93918
* Update CMake list.Benjamin Kramer2010-01-191-1/+0
| | | | llvm-svn: 93905
* Add some new debugging APIs to print out "raw" SelectionDAGs to makeDavid Greene2010-01-192-29/+25
| | | | | | understanding CannotYTetSelect and other errors easier. llvm-svn: 93901
* Generalize mcasmstreamer data emission APIs to take an address spaceChris Lattner2010-01-191-13/+7
| | | | | | identifier. There is no way to work around it. llvm-svn: 93896
* Do not extend extension results beyond the use of a PHI instruction at the ↵Evan Cheng2010-01-191-0/+12
| | | | | | start of a use block. A PHI use is expected to kill its source values. llvm-svn: 93895
* refactor code to be static functions instead of methods on AsmPrinter.Chris Lattner2010-01-191-47/+39
| | | | | | This fixes some bugs handling address spaces. llvm-svn: 93891
* mcstreamerize AsmPrinter::EmitZeros, at least when emitting to the Chris Lattner2010-01-191-8/+6
| | | | | | default address space. llvm-svn: 93890
* remove MAI::ZeroDirectiveSuffix, which is only used by MASM,Chris Lattner2010-01-191-10/+6
| | | | | | which we don't support anymore. llvm-svn: 93886
* For aligned load/store instructions, it's only required to know whether aJim Grosbach2010-01-191-70/+0
| | | | | | | | | | | function can support dynamic stack realignment. That's a much easier question to answer at instruction selection stage than whether the function actually will have dynamic alignment prologue. This allows the removal of the stack alignment heuristic pass, and improves code quality for cases where the heuristic would result in dynamic alignment code being generated when it was not strictly necessary. llvm-svn: 93885
* mcstreamer'ize the rest of EmitGlobalVariable that is used on Chris Lattner2010-01-191-6/+8
| | | | | | | darwin. The next big piece to get global variables streamerized is EmitGlobalConstant. llvm-svn: 93870
* stop using the .lcomm pseudoop on darwin, instead, directly use theChris Lattner2010-01-191-9/+22
| | | | | | .zerofill directive. Streamerize its generation. llvm-svn: 93868
* MDNodes are not expected to disappear or replaced by another MDNode, so ↵Devang Patel2010-01-192-15/+16
| | | | | | there is no need to pay the cost of WeakVH and ValueMaps. llvm-svn: 93865
* Avoid including DebugInfo.h in AsmPrinter.hDevang Patel2010-01-192-2/+3
| | | | llvm-svn: 93864
* mc'ize some stuff, don't comment out .lcomm directive in -fverbose-asm mode.Chris Lattner2010-01-191-7/+4
| | | | llvm-svn: 93860
* factor this code better.Chris Lattner2010-01-191-21/+13
| | | | llvm-svn: 93859
* Now that we have everything nicely factored (e.g. asmprinter is notChris Lattner2010-01-191-2/+122
| | | | | | | | | | | | | | | | | | | | | | | doing global variable classification anymore) and hookized, sink almost all target targets global variable emission code into AsmPrinter and out of each target. Some notes: 1. PIC16 does completely custom and crazy stuff, so it is not changed. 2. XCore has some custom handling for extra directives. I'll look at it next. 3. This switches linux/ppc to use .globl instead of .global. If .globl is actually wrong, let me know and I'll fix it. 4. This makes linux/ppc get a lot of random cases right which were obviously wrong before, it is probably now a bit healthier. 5. Blackfin will probably start getting .comm and other things that it didn't before. If this is undesirable, it should explicitly opt out of these things by clearing the relevant fields of MCAsmInfo. This leads to a nice diffstat: 14 files changed, 127 insertions(+), 830 deletions(-) llvm-svn: 93858
* hoist handling of external globals and special globals up to common code.Chris Lattner2010-01-191-1/+15
| | | | | | | | | | This makes a similar code dead in all the other targets, I'll clean it up in a bit. This also moves handling of lcomm up before acquisition of a section, since lcomm never needs a section. llvm-svn: 93851
* move production of .reference directives for static ctor/dtor list onChris Lattner2010-01-191-0/+8
| | | | | | darwin into common code. llvm-svn: 93849
* Revert accident check-in from r93165.Devang Patel2010-01-191-8/+6
| | | | llvm-svn: 93832
* Revert 93811 per request.Dale Johannesen2010-01-191-3/+0
| | | | llvm-svn: 93818
* Enable code to emit dbg.declare as DEBUG_VALUEDale Johannesen2010-01-181-0/+3
| | | | | | | | | comments (fast isel, X86). This doesn't seem to break any functionality, but will introduce cases where -g affects the generated code. I'll be fixing that. llvm-svn: 93811
* Canonicalize -1 - x to ~x.Evan Cheng2010-01-181-0/+3
| | | | | | | | | | Instcombine does this but apparently there are situations where this pattern will escape the optimizer and / or created by isel. Here is a case that's seen in JavaScriptCore: %t1 = sub i32 0, %a %t2 = add i32 %t1, -1 The dag combiner pattern: ((c1-A)+c2) -> (c1+c2)-A will fold it to -1 - %a. llvm-svn: 93773
* - Add a comment to the callback indicating that it's *extremely* not a goodBill Wendling2010-01-181-1/+1
| | | | | | | | idea, but unfortunately necessary. - Default to using 4-bytes for the LSDA pointer encoding to agree with the encoded value in the CIE. llvm-svn: 93753
* remove the MAI argument to MCExpr::print and switch overthing to use << when ↵Chris Lattner2010-01-181-2/+1
| | | | | | printing them. llvm-svn: 93699
* now that MCSymbol::print doesn't use it's MAI argument, we can Chris Lattner2010-01-173-79/+41
| | | | | | | remove it and change all the code that prints MCSymbols to use << instead, which is much simpler and cleaner. llvm-svn: 93695
* now that mangler is in libtarget, it can use MCAsmInfo instead of clientsChris Lattner2010-01-172-3/+2
| | | | | | having to pass various fields from it in. Simplify. llvm-svn: 93686
* Switch some functions to take Twines, eliminate uses of StringExtras.h.Benjamin Kramer2010-01-174-36/+16
| | | | llvm-svn: 93680
* Add a note for the macho streamer and remove a used of the mangler from the ↵Nate Begeman2010-01-171-6/+0
| | | | | | soon to be defunct machowriter pass. llvm-svn: 93670
* When checking for sret-demotion, it needs to use legal types. When using ↵Kenneth Uildriks2010-01-161-11/+41
| | | | | | the return value of an sret-demoted call, it needs to use possibly illegal types that match the declared Type of the callee. llvm-svn: 93667
* move the mangler into libtarget from vmcore.Chris Lattner2010-01-165-6/+6
| | | | llvm-svn: 93664
* reapply the mangler gutting patch.Chris Lattner2010-01-161-6/+0
| | | | llvm-svn: 93656
* unbreak the build.Chris Lattner2010-01-161-6/+0
| | | | llvm-svn: 93654
* Revert 93648.Rafael Espindola2010-01-161-0/+6
| | | | | | | | Mangler::getMangledName is used from lto Mangler::setUseQuotes is used in the AsmPrinter Mangler::setSymbolsCanStartWithDigit is used in the AsmPrinter llvm-svn: 93652
* Mangler::getMangledName is now dead, remove it and all the other stuff in ↵Chris Lattner2010-01-161-6/+0
| | | | | | Mangler that is now transitively dead. woo. llvm-svn: 93648
* Change DIEObjectLabel to take an MCSymbol instead of std::string.Chris Lattner2010-01-166-10/+23
| | | | llvm-svn: 93647
* rename GetPrivateGlobalValueSymbolStub -> GetSymbolWithGlobalValueBase,Chris Lattner2010-01-163-26/+45
| | | | | | | | and add an explicit ForcePrivate argument. Switch FunctionEHFrameInfo to be MCSymbol based instead of string based. llvm-svn: 93646
* eliminate uses of getMangledName from AsmPrinter.cpp, last up is Chris Lattner2010-01-161-5/+9
| | | | | | dwarf emission which is going to be more invasive. llvm-svn: 93645
* No need to use WeakVH here.Devang Patel2010-01-161-2/+1
| | | | llvm-svn: 93631
* Replace DebugLocTuple with DILocation.Devang Patel2010-01-164-32/+38
| | | | llvm-svn: 93630
* remove a couple of actively incorrect uses of getMangledName.Chris Lattner2010-01-161-4/+6
| | | | llvm-svn: 93627
* Retrying r91337:Bill Wendling2010-01-161-8/+19
| | | | | | | | The CIE says that the LSDA point in the FDE section is an "sdata4". That's fine, but we need it to actually be 4-bytes in the FDE for some platforms. Allow individual platforms to decide for themselves. llvm-svn: 93616
OpenPOWER on IntegriCloud