[llvm] r200309 - Provide a stub Target Streamer implementation for PPC MachO

Iain Sandoe iain at codesourcery.com
Tue Jan 28 23:44:28 PST 2014


David,
OK. 
Thanks for looking at this,
I'll take a look at providing an alternate test-case.
Iain

On 29 Jan 2014, at 06:18, David Fang wrote:

> Iain,
> 	I've merged the powerpc-darwin8 branch up to the revision *before* this commit, and llvm-mc doesn't crash for me, using the test/CodeGen/hello-reloc.s test case, which invokes llvm-mc, targets powerpc-darwin, and includes a .machine directive.  Since you added the PPC-darwin-asm-parser, .machine never crashed, it's just been ignored. I would expect this test to trigger buildbot alarms if something were amiss on bots with the PowerPC target.
> 	Is some other way to tickle the problem, that I'm missing?
> 
> David
> 
>> Can you added a testcase (with llvm-mc) showing that we don't crash
>> with .machine and having a fixme on what should happen once it is
>> implemented?
>> 
>> On 28 January 2014 06:03, Iain Sandoe <iain at codesourcery.com> wrote:
>>> Author: iains
>>> Date: Tue Jan 28 05:03:17 2014
>>> New Revision: 200309
>>> 
>>> URL: http://llvm.org/viewvc/llvm-project?rev=200309&view=rev
>>> Log:
>>> Provide a stub Target Streamer implementation for PPC MachO
>>> 
>>> At present, this handles .tc (error) and needs to be expanded to deal properly with .machine
>>> 
>>> 
>>> Modified:
>>>    llvm/trunk/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp
>>> 
>>> Modified: llvm/trunk/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp
>>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp?rev=200309&r1=200308&r2=200309&view=diff
>>> ==============================================================================
>>> --- llvm/trunk/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp (original)
>>> +++ llvm/trunk/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp Tue Jan 28 05:03:17 2014
>>> @@ -139,6 +139,18 @@ public:
>>>     // limit the parser?
>>>   }
>>> };
>>> +
>>> +class PPCTargetMachOStreamer : public PPCTargetStreamer {
>>> +public:
>>> +  PPCTargetMachOStreamer(MCStreamer &S) : PPCTargetStreamer(S) {}
>>> +  virtual void emitTCEntry(const MCSymbol &S) {
>>> +    llvm_unreachable("Unknown pseudo-op: .tc");
>>> +  }
>>> +  virtual void emitMachine(StringRef CPU) {
>>> +    // FIXME: We should update the CPUType, CPUSubType in the Object file if
>>> +    // the new values are different from the defaults.
>>> +  }
>>> +};
>>> }
>>> 
>>> // This is duplicated code. Refactor this.
>>> @@ -149,8 +161,11 @@ static MCStreamer *createMCStreamer(cons
>>>                                     const MCSubtargetInfo &STI,
>>>                                     bool RelaxAll,
>>>                                     bool NoExecStack) {
>>> -  if (Triple(TT).isOSDarwin())
>>> -    return createMachOStreamer(Ctx, MAB, OS, Emitter, RelaxAll);
>>> +  if (Triple(TT).isOSDarwin()) {
>>> +    MCStreamer *S = createMachOStreamer(Ctx, MAB, OS, Emitter, RelaxAll);
>>> +    new PPCTargetMachOStreamer(*S);
>>> +    return S;
>>> +  }
>>> 
>>>   MCStreamer *S =
>>>       createELFStreamer(Ctx, MAB, OS, Emitter, RelaxAll, NoExecStack);
>>> 
>>> 
>>> _______________________________________________
>>> llvm-commits mailing list
>>> llvm-commits at cs.uiuc.edu
>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>> 
> 
> -- 
> David Fang
> http://www.csl.cornell.edu/~fang/
> 





More information about the llvm-commits mailing list