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

David Fang fang at csl.cornell.edu
Tue Jan 28 22:18:54 PST 2014


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