[llvm-commits] [llvm] r72631 - in /llvm/trunk: include/llvm/CodeGen/ include/llvm/Target/ lib/CodeGen/ lib/ExecutionEngine/JIT/ lib/Target/ARM/ lib/Target/Alpha/ lib/Target/PowerPC/ lib/Target/X86/
Anton Korobeynikov
anton at korobeynikov.info
Sat May 30 14:15:08 PDT 2009
Hello, Bruno
> First patch in the direction of splitting MachineCodeEmitter in two subclasses:
> JITCodeEmitter and ObjectCodeEmitter. No functional changes yet. Patch by Aaron Gray
Sorry, I was not able to look into it before
> + void emitWordLE(unsigned W) {
> + if (4 <= BufferEnd-CurBufferPtr) {
> + *CurBufferPtr++ = (unsigned char)(W >> 0);
> + *CurBufferPtr++ = (unsigned char)(W >> 8);
> + *CurBufferPtr++ = (unsigned char)(W >> 16);
> + *CurBufferPtr++ = (unsigned char)(W >> 24);
> + } else {
> + CurBufferPtr = BufferEnd;
> + }
> + }
Please use uint8_t here and everywhere instead of unsigned char.
> + /// emitInt32 - Emit a int32 directive.
> + void emitInt32(int Value) {
Please use int32_t here. Same for other places.
> +
> +FunctionPass *createARMCodeEmitterPass(
> + ARMTargetMachine &TM, MachineCodeEmitter &MCE);
> +/*
> +template< class machineCodeEmitter>
> +FunctionPass *createARMCodeEmitterPass(
> + ARMTargetMachine &TM, machineCodeEmitter &MCE);
> +*/
Huh? Also, please follow LLVM Coding Style convention.
> +
> + template< class machineCodeEmitter>
No space before "class". Maybe it's better to select another name for
template? MachineCodeEmitter vs machineCodeEmitter looks ambiguous.
> + class VISIBILITY_HIDDEN Emitter : public MachineFunctionPass,
> + public ARMCodeEmitter
> + {
Here also. "{" is normally put on the same line as class def.
> +
> +namespace llvm {
> +
> +FunctionPass *createARMCodeEmitterPass(
> + ARMTargetMachine &TM, MachineCodeEmitter &MCE)
> +{
> + return new Emitter<MachineCodeEmitter>(TM, MCE);
> +}
> +FunctionPass *createARMJITCodeEmitterPass(
> + ARMTargetMachine &TM, JITCodeEmitter &JCE)
> +{
> + return new Emitter<JITCodeEmitter>(TM, JCE);
> }
See above about coding style.
> + template <class machineCodeEmitter>
> + class VISIBILITY_HIDDEN Emitter : public MachineFunctionPass,
> + public AlphaCodeEmitter
> + {
Same here
> +
> +FunctionPass *llvm::createAlphaCodeEmitterPass( AlphaTargetMachine &TM,
> MachineCodeEmitter &MCE) {
> - return new AlphaCodeEmitter(TM, MCE);
> + return new Emitter<MachineCodeEmitter>(TM, MCE);
> +}
And here...
> +
> +FunctionPass *llvm::createAlphaJITCodeEmitterPass( AlphaTargetMachine &TM,
> + JITCodeEmitter &JCE) {
> + return new Emitter<JITCodeEmitter>(TM, JCE);
> }
And here.
> + /// getBinaryCodeForInstr - This function, generated by the
> + /// CodeEmitterGenerator using TableGen, produces the binary encoding for
> + /// machine instructions.
> +
> + unsigned getBinaryCodeForInstr(const MachineInstr &MI);
Do not add blank lines after comment blocks.
<same comments applies for stuff later>
--
With best regards, Anton Korobeynikov.
Faculty of Mathematics & Mechanics, Saint Petersburg State University.
More information about the llvm-commits
mailing list