summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
...
* SjLj EH introduces can introduce an additional edge to a landing pad and padJim Grosbach2010-01-201-0/+13
| | | | | | normalization needs to take this into account. llvm-svn: 94046
* make findDebugLoc a class methodDale Johannesen2010-01-201-9/+11
| | | | llvm-svn: 94032
* When XDEBUG is enabled, check for SelectionDAG cycles at some keyDavid Greene2010-01-201-1/+35
| | | | | | | points. This will help us find future problems like the one described in PR6019. llvm-svn: 94019
* don't send null pointers through the constantexpr codepath unneededly.Chris Lattner2010-01-201-0/+6
| | | | llvm-svn: 94010
* eliminate some uses of AsmPrinter::EmitIntXXXChris Lattner2010-01-203-20/+19
| | | | llvm-svn: 93996
* inline and radically simplify printDataDirective. It will eventuallyChris Lattner2010-01-201-45/+18
| | | | | | go completely away. llvm-svn: 93994
* emit basic block labels with mcstreamer.Chris Lattner2010-01-201-8/+4
| | | | llvm-svn: 93993
* emit integer and fp zeros as (e.g.) .byte 0 instead of .space 1,Chris Lattner2010-01-201-15/+12
| | | | | | for tidiness. llvm-svn: 93992
* signficant cleanups to EmitGlobalConstant (including streamerization Chris Lattner2010-01-201-103/+67
| | | | | | | | of int initializers), change some methods to be static functions, use raw_ostream::write_hex instead of a smallstring dance with APValue::toStringUnsigned(S, 16). llvm-svn: 93991
* switch ConstantFP emission to use MCStreamer, significantly Chris Lattner2010-01-201-34/+18
| | | | | | simplifying the code. llvm-svn: 93988
* 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
OpenPOWER on IntegriCloud