search for: ismachoabi

Displaying 11 results from an estimated 11 matches for "ismachoabi".

2007 Feb 14
2
[LLVMdev] Linux/ppc backend
...e 'Defs' of type 'list<Register>' is incompatible with initializer '[{ (the code is at the end of this mail) I'm not sure how to play with Defs and what to write in a .td file. I tried a top-level if with a Predicate: def IsMacho : Predicate<"Subtarget->isMachoABI()">; if (isMacho) let Defs = .... else Defs = ... But this fails too. Any other ideas on how to get this right? Thx, Nicolas let isCall = 1, noResults = 1, PPC970_Unit = 7, // All calls clobber the non-callee saved registers... Defs = [{ static const unsigned Defs_ELF[] = {...
2007 Feb 15
0
[LLVMdev] Linux/ppc backend
I think the easiest thing for you to do is to define a separate CALL instruction with a different set of Defs. This instruction should only be selected when the predicate isMacho is true. Also update PPCRegisterInfo.cpp getCalleeSavedRegs() to return a different list when subtarget->isMachoABI() is true. Evan On Feb 14, 2007, at 7:19 AM, Nicolas Geoffray wrote: > Hi Chris, > > Chris Lattner wrote: >>> 2) Line 369 of PPCInstrInfo.td, we declare the non-callee saved >>> registers. >>> However, Linux and Darwin do not have the same set >>>...
2007 Feb 02
0
[LLVMdev] Linux/ppc backend
...this unneeded. 2. The X86 backend has the unfortunate habit of saying "if !darwin" "if !cygwin" etc. Most of the changes you've made are actually ABI related changes, not OS-specific changes. As such, I'd prefer it if you added two methods to PPCSubtarget: isMachoABI() and isELF_ABI() (or whatever is the right name of the ABI that linux uses) and use those instead. 3. Please split up the patch into independent chunks for easier review. This will make it much more likely that your pieces will be applied in a timely fashion :). This will also let yo...
2007 Feb 02
5
[LLVMdev] Linux/ppc backend
Hi everyone, I have almost completed the implementation of a linux/ppc backend in llvm. There were a few things to modify in lib/Target/PowerPC with a lot of "if (!isDarwin)". There are some places where I need help before saying the port is complete. I attached the diff file as a reference 1) In order to generate a creqv instruction before a vararg call, I created a new
2007 Feb 04
2
[LLVMdev] Linux/ppc backend
...2. The X86 backend has the unfortunate habit of saying "if !darwin" "if > !cygwin" etc. Most of the changes you've made are actually ABI related > changes, not OS-specific changes. As such, I'd prefer it if you added > two methods to PPCSubtarget: isMachoABI() and isELF_ABI() (or whatever > is the right name of the ABI that linux uses) and use those instead. > Well all of the changes are ABI related. In fact, could you give me an example of what is os-specific and not abi-specific? I'm not sure. > 3. Please split up the patch into i...
2008 Apr 21
0
[LLVMdev] RFC: PowerPC tail call optimization patch
...Store(Chain, Arg, PtrOff, NULL, 0)); + // Calculate and remember argument location. + else + CalculateTailCallArgDest(DAG, MF, isPPC64, Arg, SPDiff, ArgOffset, + TailCallArguments); + inMem = true; } if (inMem || isMachoABI) { @@ -1994,7 +2339,13 @@ SDOperand PPCTargetLowering::LowerCALL(SDOperand Op, SelectionDAG &DAG, } } } else { - MemOpChains.push_back(DAG.getStore(Chain, Arg, PtrOff, NULL, 0)); + if (!isTailCall) + MemOpChains.push_back(DAG.getStore(Cha...
2008 Apr 22
2
[LLVMdev] RFC: PowerPC tail call optimization patch
...// Calculate and remember argument location. > + else > + CalculateTailCallArgDest(DAG, MF, isPPC64, Arg, SPDiff, > ArgOffset, > + TailCallArguments); > + > inMem = true; > } > if (inMem || isMachoABI) { > @@ -1994,7 +2339,13 @@ SDOperand > PPCTargetLowering::LowerCALL(SDOperand Op, SelectionDAG &DAG, > } > } > } else { > - MemOpChains.push_back(DAG.getStore(Chain, Arg, PtrOff, NULL, > 0)); > + if (!isTailCall) > +...
2008 Apr 16
2
[LLVMdev] RFC: PowerPC tail call optimization patch
Hello Dale, this is an updated version of the tail call optimization patch for powerpc. could you have a look at it? i added code to support ppc64 (untested, will try to get access to ppc64 on a friend's machine). incorporated evan's formatting suggestions. ;) will run another round of testing (llvm-test) on my powerpc g4/800 when i get the okay to commit. testing on this machine takes
2007 Feb 04
0
[LLVMdev] Linux/ppc backend
...backend has the unfortunate habit of saying "if !darwin" "if >> !cygwin" etc. Most of the changes you've made are actually ABI related >> changes, not OS-specific changes. As such, I'd prefer it if you added >> two methods to PPCSubtarget: isMachoABI() and isELF_ABI() (or whatever >> is the right name of the ABI that linux uses) and use those instead. >> > Well all of the changes are ABI related. In fact, could you give me an > example of what is os-specific and not abi-specific? I'm not sure. Most of the things you a...
2007 Feb 17
2
[LLVMdev] Linux/ppc backend
...iest thing for you to do is to define a separate CALL > instruction with a different set of Defs. This instruction should > only be selected when the predicate isMacho is true. Also update > PPCRegisterInfo.cpp getCalleeSavedRegs() to return a different list > when subtarget->isMachoABI() is true. > Alright, thx Evan, that's what I did. Here are the final patches I think can be committed. I tried to separate them into independent chunks, but I'm not sure how to do this in a good way because of CVS and since everything is kind of related. CallABIELF.patch file cha...
2008 Apr 22
0
[LLVMdev] RFC: PowerPC tail call optimization patch
...member argument location. >> + else >> + CalculateTailCallArgDest(DAG, MF, isPPC64, Arg, SPDiff, >> ArgOffset, >> + TailCallArguments); >> + >> inMem = true; >> } >> if (inMem || isMachoABI) { >> @@ -1994,7 +2339,13 @@ SDOperand >> PPCTargetLowering::LowerCALL(SDOperand Op, SelectionDAG &DAG, >> } >> } >> } else { >> - MemOpChains.push_back(DAG.getStore(Chain, Arg, PtrOff, NULL, >> 0)); >> + i...