summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/PIC16
Commit message (Collapse)AuthorAgeFilesLines
...
* Changed lowering and asmprinter to use ABI Names class called PAN.Sanjiv Gupta2009-05-107-202/+281
| | | | llvm-svn: 71386
* Rename PaddedSize to AllocSize, in the hope that thisDuncan Sands2009-05-092-6/+6
| | | | | | | will make it more obvious what it represents, and stop it being confused with the StoreSize. llvm-svn: 71349
* Use 16 bit arithmetic while retrieving the address of callee's frame during ↵Sanjiv Gupta2009-05-091-7/+16
| | | | | | indirect function calls, and set pclath before every call to retrieve the frame address. llvm-svn: 71323
* Add missing #include for "strlen" which is used inline in this header. FixesNick Lewycky2009-05-081-0/+1
| | | | | | build under gcc 4.3. llvm-svn: 71208
* Moved pic16 naming functions to correct place.Sanjiv Gupta2009-05-083-84/+79
| | | | | | No functionality change. llvm-svn: 71207
* Eliminate compiler warnings.Evan Cheng2009-05-071-2/+2
| | | | llvm-svn: 71149
* CMake: Updated lib/Target/PIC16/CMakeLists.txt.Oscar Fuentes2009-05-061-0/+1
| | | | llvm-svn: 71115
* Emit banksel and movlp instructions.Sanjiv Gupta2009-05-0612-142/+586
| | | | | | | 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-295-8/+13
| | | | | | | which better identifies what the optimization is doing. And is more flexible for future uses. llvm-svn: 70440
* Add a public method called getAddressSpace() to the GlobalAddressSDNode.Sanjiv Gupta2009-04-291-2/+1
| | | | llvm-svn: 70366
* Second attempt:Bill Wendling2009-04-295-11/+13
| | | | | | | | | | | | 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
* GlobalValue is always pointer type, so an assert isn't required.Sanjiv Gupta2009-04-281-6/+1
| | | | llvm-svn: 70300
* r70270 isn't ready yet. Back this out. Sorry for the noise.Bill Wendling2009-04-285-13/+11
| | | | llvm-svn: 70275
* Massive check in. This changes the "-fast" flag to "-O#" in llc. If you want toBill Wendling2009-04-285-11/+13
| | | | | | | | | | | 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
* Banksel immediate constant will always immediately follow the GA/ES, so scan ↵Sanjiv Gupta2009-04-231-18/+20
| | | | | | an insn from beginnin to find out the banksel operand. llvm-svn: 69883
* Make the function begin label start after ther data pointer.Sanjiv Gupta2009-04-223-9/+12
| | | | | | The address of data frame for function can be obtained by subtracting 2 from the function begin label. llvm-svn: 69801
* Handle direct aggregate type arguments.Sanjiv Gupta2009-04-212-51/+36
| | | | llvm-svn: 69665
* Remove unused variable.Daniel Dunbar2009-04-201-1/+0
| | | | llvm-svn: 69624
* Emit the auto variables of a function into a different section than parameters.Sanjiv Gupta2009-04-202-24/+46
| | | | llvm-svn: 69605
* Handle aggregate type arguments to direct and indirect calls.Sanjiv Gupta2009-04-144-35/+101
| | | | llvm-svn: 69022
* While passing arg of types larger than char only one byte at lower end was ↵Sanjiv Gupta2009-04-131-1/+1
| | | | | | getting passed. We couldn't catch this as we did not have tests that were passing an int value larger than 256. llvm-svn: 68946
* Added code to handle spilling and reloading of FSRs.Sanjiv Gupta2009-04-104-14/+61
| | | | llvm-svn: 68783
* The way we are trying to figure out banksel immediate operand may yield ↵Sanjiv Gupta2009-04-091-2/+3
| | | | | | different results for different type of insns. This will eventually need to be changed but currently let us prevent the crash in cases of incorrect detection of banksel operand. llvm-svn: 68713
* Arguments to indirect calls were being passed incorrectly. They are not ↵Sanjiv Gupta2009-04-091-2/+6
| | | | | | fixed to start after return value. llvm-svn: 68705
* r68576 unconverd a bug in PIC16 port (Thanks to Dan Gohman) where we were ↵Sanjiv Gupta2009-04-091-5/+10
| | | | | | custom lowering an ADD to ADDC. llvm-svn: 68671
* Emit .line debug directives for stoppoints. The debug location is retrieved ↵Sanjiv Gupta2009-04-085-24/+19
| | | | | | by the MachineInstr itself, rather than by custom handling the DBG_STOPPOINT nodes. llvm-svn: 68602
* Handle indirect function calls.Sanjiv Gupta2009-04-085-89/+346
| | | | | | | Every function has the address of its frame in the beginning of code section. The frame address is retrieved and used to pass arguments. llvm-svn: 68597
* Map stack based frameindices for spills to zero based indices that can be ↵Sanjiv Gupta2009-04-065-33/+62
| | | | | | 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
* Fixed build warnings.Sanjiv Gupta2009-04-021-2/+0
| | | | llvm-svn: 68333
* To convert the StopPoint insn into an assembler directive by ISel, we need ↵Sanjiv Gupta2009-04-024-0/+31
| | | | | | to have access to the line number field. So we convert that info as an operand by custom handling DBG_STOPPOINT in legalize. llvm-svn: 68329
* Params are not being generated as static globals now. The caller passes them ↵Sanjiv Gupta2009-04-025-53/+133
| | | | | | 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-255-9/+10
| | | | | | default to verbose. llvm-svn: 67668
* Fixed comment for libcalls.Sanjiv Gupta2009-03-201-20/+23
| | | | llvm-svn: 67373
* Reformatting. Inserted code comments. Cleaned interfaces.Sanjiv Gupta2009-03-202-112/+68
| | | | | | Removed unncessary code. No functionality change. llvm-svn: 67371
* Forgot to check-in this as part of 7761.Sanjiv Gupta2009-03-121-3/+2
| | | | llvm-svn: 66763
* Banksel optimization is now based on the section names of symbols, since the ↵Sanjiv Gupta2009-03-121-44/+52
| | | | | | symbols in one section will always be put into one bank. llvm-svn: 66761
* Mark the Defs and Uses of STATUS register correctly, plus some reformatting.Sanjiv Gupta2009-03-101-41/+61
| | | | llvm-svn: 66540
* Overhaul my earlier submission due to feedback. It's a large patch, but most ofBill Wendling2009-02-244-6/+11
| | | | | | | | | | | | 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
* Put code that generates debug labels into TableGen so that it can be used byBill Wendling2009-02-181-3/+4
| | | | | | everyone. llvm-svn: 64978
* Remove refs to non-DebugLoc version of BuildMI from XCore, PIC16.Dale Johannesen2009-02-131-2/+3
| | | | llvm-svn: 64432
* Move debug loc info along when the spiller creates new instructions.Bill Wendling2009-02-121-4/+11
| | | | llvm-svn: 64342
* Function temporaries can not overlap with retval or args.See the comment in ↵Sanjiv Gupta2009-02-101-8/+20
| | | | | | source code to know the reason. Anything having .auto. in its name is local to a function in nature irrespective of the linkage specified. print static local variables in module level IDATA section. llvm-svn: 64199
* Constify TargetInstrInfo::EmitInstrWithCustomInserter, allowingDan Gohman2009-02-072-2/+2
| | | | | | ScheduleDAG's TLI member to use const. llvm-svn: 64018
* Get rid of the last non-DebugLoc versions of getNode!Dale Johannesen2009-02-072-8/+8
| | | | | | | | | | | | Many targets build placeholder nodes for special operands, e.g. GlobalBaseReg on X86 and PPC for the PIC base. There's no sensible way to associate debug info with these. I've left them built with getNode calls with explicit DebugLoc::getUnknownLoc operands. I'm not too happy about this but don't see a good improvement; I considered adding a getPseudoOperand or something, but it seems to me that'll just make it harder to read. llvm-svn: 63992
* Remove more non-DebugLoc getNode variants. UseDale Johannesen2009-02-061-3/+5
| | | | | | | | getCALLSEQ_{END,START} to permit passing no DebugLoc there. UNDEF doesn't logically have DebugLoc; add getUNDEF to encapsulate this. llvm-svn: 63978
* Remove more non-DebugLoc versions of getNode.Dale Johannesen2009-02-061-21/+28
| | | | llvm-svn: 63969
* Print globl directive for variables with external linkage (global variables).Sanjiv Gupta2009-02-061-0/+2
| | | | llvm-svn: 63943
* Get rid of one more non-DebugLoc getNode andDale Johannesen2009-02-061-3/+3
| | | | | | | its corresponding getTargetNode. Lots of caller changes. llvm-svn: 63904
* Get rid of 3 non-DebugLoc getNode variants.Dale Johannesen2009-02-052-42/+53
| | | | llvm-svn: 63808
* Remove non-DebugLoc versions of getMergeValues, ZeroExtendInReg.Dale Johannesen2009-02-051-2/+3
| | | | llvm-svn: 63800
OpenPOWER on IntegriCloud