summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* Generalize mcasmstreamer data emission APIs to take an address spaceChris Lattner2010-01-197-48/+50
| | | | | | 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-192-8/+8
| | | | | | default address space. llvm-svn: 93890
* add an MCAsmStreamer::EmitFill specialization of EmitFill thatChris Lattner2010-01-191-0/+15
| | | | | | | emits one directive instead of N. Not doing this would be a significant regression on the # bytes generated by .fill. llvm-svn: 93889
* add a "MCStreamer::EmitFill" method, and move the default implementationChris Lattner2010-01-191-0/+9
| | | | | | (which just iteratively emits bytes) to MCStreamer. llvm-svn: 93888
* remove MAI::ZeroDirectiveSuffix, which is only used by MASM,Chris Lattner2010-01-193-12/+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-199-83/+21
| | | | | | | | | | | 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
* optimize ~(~X >>s Y) --> (X >>s Y), patch by Edmund GrimleyChris Lattner2010-01-191-0/+5
| | | | | | Evans! llvm-svn: 93884
* On pic function calls some arguments were marked dead andBruno Cardoso Lopes2010-01-192-15/+30
| | | | | | the instruction to load those args removed. This fix PR6071 llvm-svn: 93880
* load f64 +0.0 in a cleaner way. This fix part of PR5445Bruno Cardoso Lopes2010-01-192-12/+12
| | | | llvm-svn: 93876
* Fix return registers for mips eabiBruno Cardoso Lopes2010-01-191-4/+4
| | | | llvm-svn: 93875
* 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-194-16/+36
| | | | | | .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-194-2/+5
| | | | llvm-svn: 93864
* zap the ARM version of PrintGlobalVariable, which I missed.Chris Lattner2010-01-191-113/+0
| | | | llvm-svn: 93863
* mc'ize some stuff, don't comment out .lcomm directive in -fverbose-asm mode.Chris Lattner2010-01-192-10/+11
| | | | 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-1913-825/+126
| | | | | | | | | | | | | | | | | | | | | | | 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
* use %object like other elf targets, gas accepts either.Chris Lattner2010-01-191-1/+1
| | | | llvm-svn: 93857
* simplify the mips target to print .size and .type for c strings Chris Lattner2010-01-191-6/+2
| | | | | | | just like all other elf targets. Bruno, if this isn't right, please let me know + why :) llvm-svn: 93856
* hookize the cygwin ".linkonce" directive.Chris Lattner2010-01-193-6/+13
| | | | llvm-svn: 93855
* more cleanups. Emit the .local directive even on cygwin/mingw.Chris Lattner2010-01-191-6/+3
| | | | | | | | I'm not sure that this is correct, but it causes no test failures, and just emitting a .comm without protecting its linkage somehow is surely not right. llvm-svn: 93854
* some cleanupsChris Lattner2010-01-192-20/+21
| | | | llvm-svn: 93853
* add a bool for whether .lcomm takes an alignment instead of basing this on ↵Chris Lattner2010-01-195-11/+14
| | | | | | "isdarwin". llvm-svn: 93852
* hoist handling of external globals and special globals up to common code.Chris Lattner2010-01-194-74/+59
| | | | | | | | | | 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-196-27/+13
| | | | | | darwin into common code. llvm-svn: 93849
* Fix a crash in scalarrepl for memcpy/memmove where the source and destinationBob Wilson2010-01-191-6/+10
| | | | | | | | | are the same. I had already fixed a similar problem where the source and destination were different bitcasts derived from the same alloca, but the previous fix still did not handle the case where both operands are exactly the same value. Radar 7552893. llvm-svn: 93848
* use BSSLocal classifier to identify 'lcomm' data instead ofChris Lattner2010-01-193-66/+41
| | | | | | duplicating the logic (differently) in lots of different targets. llvm-svn: 93847
* make TLOF subclassify BSS based on linkage type into private, externalChris Lattner2010-01-191-2/+7
| | | | | | and everything else (weak). llvm-svn: 93846
* now that elf weak bss symbols are handled correctly, simplify a bunch of code.Chris Lattner2010-01-193-89/+18
| | | | llvm-svn: 93845
* fix a significant difference between llvm and gcc on ELF systems:Chris Lattner2010-01-192-3/+5
| | | | | | | | GCC would put weak zero initialized mutable data in the .bss section, we would put it into a crasy '.gnu.linkonce.b.test,"aw",@nobits' section. Fixing this will allow simplifications next up. llvm-svn: 93844
* introduce a section kind for common linkage. Use this to slightlyChris Lattner2010-01-195-24/+99
| | | | | | | | | simplify and commonize some of the asmprinter logic for globals. This also avoids printing the MCSection for .zerofill, which broke the llvm-gcc build. llvm-svn: 93843
* Even more explanation.Bill Wendling2010-01-192-0/+24
| | | | llvm-svn: 93841
* change an accessor to a predicate.Chris Lattner2010-01-193-6/+6
| | | | llvm-svn: 93839
* Cleanup handling of .zerofill on darwin:Chris Lattner2010-01-196-145/+164
| | | | | | | | | | | | | 1. TargetLoweringObjectFileMachO should decide if something goes in zerofill instead of having every target do it. 2. TargetLoweringObjectFileMachO should assign said symbols to the right MCSection, the asmprinters should just emit to the right section. 3. Since all zerofill stuff goes through mcstreamer anymore, MAI can have a bool "haszerofill" instead of having the textual directive to emit. llvm-svn: 93838
* Remove this fixme, looking at the linker source, all targets pad to 4 bytes.Nate Begeman2010-01-191-2/+0
| | | | llvm-svn: 93835
* Revert accident check-in from r93165.Devang Patel2010-01-191-8/+6
| | | | llvm-svn: 93832
* Fix comment.Eric Christopher2010-01-191-1/+1
| | | | llvm-svn: 93831
* Fix r93758. Use isel patterns instead of c++ selection code to select rbit ↵Evan Cheng2010-01-193-8/+7
| | | | | | and make sure we pick different instructions for ARM vs. Thumb2. llvm-svn: 93829
* Revert 93811 per request.Dale Johannesen2010-01-192-13/+0
| | | | llvm-svn: 93818
* Enable code to emit dbg.declare as DEBUG_VALUEDale Johannesen2010-01-182-0/+13
| | | | | | | | | 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
* Add comment that MDNode::getFunction() is not to be used by ↵Victor Hernandez2010-01-181-1/+2
| | | | | | performance-critical code (currently only used by AsmWriter) llvm-svn: 93802
* Add some potentially interesting transformations to README.Eli Friedman2010-01-181-0/+51
| | | | llvm-svn: 93797
* - Add getLSDAEncoding to the PowerPC backend.Bill Wendling2010-01-184-2/+46
| | | | | | - Greatly improve the comments to the getLSDAEncoding method. llvm-svn: 93796
* my instcombine transformations to make extension elimination moreChris Lattner2010-01-182-5/+32
| | | | | | | | aggressive changed the canonical form from sext(trunc(x)) to ashr(lshr(x)), make sure to transform a couple more things into that canonical form, and catch a case where we missed turning zext/shl/ashr into a single sext. llvm-svn: 93787
* Have FastISel handle llvm.trap().Eric Christopher2010-01-181-0/+4
| | | | llvm-svn: 93781
* Minor cleanup for jump table printing. Need a reference, not a pointer, forJim Grosbach2010-01-181-1/+1
| | | | | | printing via <<. Otherwise we just print the pointer value. llvm-svn: 93777
* 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
OpenPOWER on IntegriCloud