summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/PIC16/PIC16AsmPrinter.h
Commit message (Collapse)AuthorAgeFilesLines
* Remove obsoleted files (from AsmPrinter move)Daniel Dunbar2009-08-131-79/+0
| | | | llvm-svn: 78917
* This void is implicit in C++.Dan Gohman2009-08-121-1/+1
| | | | llvm-svn: 78848
* make printInstruction return void since its result is omitted. Make the Chris Lattner2009-08-081-1/+1
| | | | | | error condition get trapped with an assert. llvm-svn: 78449
* go through PIC16TargetObjectFile to make sections instead of Chris Lattner2009-08-061-0/+4
| | | | | | creating them directly in the pic16 asmprinter. llvm-svn: 78317
* Rip all of the global variable lowering logic out of TargetAsmInfo. SinceChris Lattner2009-07-281-6/+5
| | | | | | | | | | | | | | | | | | | | it is highly specific to the object file that will be generated in the end, this introduces a new TargetLoweringObjectFile interface that is implemented for each of ELF/MachO/COFF/Alpha/PIC16 and XCore. Though still is still a brutal and ugly refactoring, this is a major step towards goodness. This patch also: 1. fixes a bunch of dangling pointer problems in the PIC16 backend. 2. disables the TargetLowering copy ctor which PIC16 was accidentally using. 3. gets us closer to xcore having its own crazy target section flags and pic16 not having to shadow sections with its own objects. 4. fixes wierdness where ELF targets would set CStringSection but not CStringSection_. Factor the code better. 5. fixes some bugs in string lowering on ELF targets. llvm-svn: 77294
* make AsmPrinter::doFinalization iterate over the global variablesChris Lattner2009-07-211-4/+10
| | | | | | | and call PrintGlobalVariable, allowing elimination and simplification of various targets. llvm-svn: 76604
* Register AsmPrinter for XCore, MSP430, and PIC16 targets.Daniel Dunbar2009-07-151-2/+2
| | | | | | - Switch to standard addAssemblyEmitter logic. llvm-svn: 75854
* Have asm printers use formatted_raw_ostream directly to avoid aDavid Greene2009-07-141-1/+1
| | | | | | dynamic_cast<>. llvm-svn: 75670
* Remove unused AsmPrinter OptLevel argument, and propogate.Daniel Dunbar2009-07-011-3/+2
| | | | | | | - This more or less amounts to a revert of r65379. I'm curious to know what happened that caused this variable to become unused. llvm-svn: 74579
* Code Restructuring. No functionality change.Sanjiv Gupta2009-06-161-1/+1
| | | | llvm-svn: 73481
* PIC16 emits auto variables as globals. When optimizer removes a function ↵Sanjiv Gupta2009-06-091-0/+1
| | | | | | entierly by estimating its side effects on globals, those globals(autos) without a function were not being printed by the Asm printer. llvm-svn: 73135
* Emit debug info for locals with proper scope.Sanjiv Gupta2009-05-281-5/+3
| | | | llvm-svn: 72531
* Emit debug information for globals (which include automatic variables as ↵Sanjiv Gupta2009-05-221-0/+4
| | | | | | well because on PIC16 they are emitted as globals by the frontend). llvm-svn: 72262
* Run through the list of globals once and sectionize all types of globlas ↵Sanjiv Gupta2009-05-131-3/+8
| | | | | | includeing declarations. Later emit them from their section lists. llvm-svn: 71661
* Iterate over globals once and sectionize them into appropriate sections.Sanjiv Gupta2009-05-121-1/+3
| | | | | | | Later in asmprinter, go over thsese sections and print them. Do not print empty sections. llvm-svn: 71560
* Detect calls to compiler intrinsics and emit an extern declarations Sanjiv Gupta2009-05-111-4/+4
| | | | | | | | | | | only for those. These extern declarations to intrinsics are currently being emitted at the bottom of generated .s file, which works fine with gpasm(not sure about MPSAM though). PIC16 linker generates errors for few cases (function-args/struct_args_5) if you do not include any extern declarations (even if no intrinsics are being used), but that needs to be fixed in the linker itself. llvm-svn: 71423
* Emit banksel and movlp instructions.Sanjiv Gupta2009-05-061-4/+1
| | | | | | | Split large global data (both initialized and un-initialized) into multiple sections of <= 80 bytes. Provide routines to manage PIC16 ABI naming conventions. llvm-svn: 71073
* Instead of passing in an unsigned value for the optimization level, use an enum,Bill Wendling2009-04-291-1/+2
| | | | | | | which better identifies what the optimization is doing. And is more flexible for future uses. llvm-svn: 70440
* Second attempt:Bill Wendling2009-04-291-3/+3
| | | | | | | | | | | | Massive check in. This changes the "-fast" flag to "-O#" in llc. If you want to use the old behavior, the flag is -O0. This change allows for finer-grained control over which optimizations are run at different -O levels. Most of this work was pretty mechanical. The majority of the fixes came from verifying that a "fast" variable wasn't used anymore. The JIT still uses a "Fast" flag. I'll change the JIT with a follow-up patch. llvm-svn: 70343
* r70270 isn't ready yet. Back this out. Sorry for the noise.Bill Wendling2009-04-281-3/+3
| | | | llvm-svn: 70275
* Massive check in. This changes the "-fast" flag to "-O#" in llc. If you want toBill Wendling2009-04-281-3/+3
| | | | | | | | | | | use the old behavior, the flag is -O0. This change allows for finer-grained control over which optimizations are run at different -O levels. Most of this work was pretty mechanical. The majority of the fixes came from verifying that a "fast" variable wasn't used anymore. The JIT still uses a "Fast" flag. I'm not 100% sure if it's necessary to change it there... llvm-svn: 70270
* Emit the auto variables of a function into a different section than parameters.Sanjiv Gupta2009-04-201-0/+2
| | | | llvm-svn: 69605
* Map stack based frameindices for spills to zero based indices that can be ↵Sanjiv Gupta2009-04-061-1/+3
| | | | | | accessed based on an external symbol defining the location of temporary data for a function. For example: we have spill slots addressed as foo.tmp + 0, foo.tmp + 1 etc. llvm-svn: 68442
* Params are not being generated as static globals now. The caller passes them ↵Sanjiv Gupta2009-04-021-1/+0
| | | | | | onto the callee's stack directly and the callee loads the argvals from its own stack. Clang generated frameindexes validatd by recalculating the stack as if all frameindexes represent 1-byte slots. llvm-svn: 68327
* CodeGen still defaults to non-verbose asm, but llc now overrides it and ↵Evan Cheng2009-03-251-3/+3
| | | | | | default to verbose. llvm-svn: 67668
* Forgot to check-in this as part of 7761.Sanjiv Gupta2009-03-121-3/+2
| | | | llvm-svn: 66763
* Overhaul my earlier submission due to feedback. It's a large patch, but most ofBill Wendling2009-02-241-2/+3
| | | | | | | | | | | | them are generic changes. - Use the "fast" flag that's already being passed into the asm printers instead of shoving it into the DwarfWriter. - Instead of calling "MI->getParent()->getParent()" for every MI, set the machine function when calling "runOnMachineFunction" in the asm printers. llvm-svn: 65379
* Enable emitting of constant values in non-default address space as well. The ↵Sanjiv Gupta2009-01-301-1/+0
| | | | | | APIs emitting constants now take an additional parameter signifying the address space in which to emit. The APIs like getData8BitsDirective() etc are made virtual enabling targets to be able to define appropirate directivers for various sizes and address spaces. llvm-svn: 63377
* Checking in conditionals, function call, arrays and libcalls implementation.Sanjiv Gupta2009-01-131-5/+3
| | | | llvm-svn: 62174
* Emit declaration for globals and externs.Sanjiv Gupta2008-11-261-0/+1
| | | | | | Custom lower AND, OR, XOR bitwise operations. llvm-svn: 60098
* Forgot to add this in the previous commit.Sanjiv Gupta2008-11-191-0/+62
llvm-svn: 59623
OpenPOWER on IntegriCloud