[llvm] [Mips] Handle declspec(dllimport) on mipsel-windows-* triples (PR #120912)
Hervé Poussineau via llvm-commits
llvm-commits at lists.llvm.org
Sun Dec 22 09:53:49 PST 2024
hpoussin wrote:
> ⚠️ C/C++ code formatter, clang-format found issues in your code. ⚠️
> You can test this locally with the following command:
>
> View the diff from clang-format here.
>
> ```diff
> diff --git a/llvm/lib/Target/Mips/MCTargetDesc/MipsBaseInfo.h b/llvm/lib/Target/Mips/MCTargetDesc/MipsBaseInfo.h
> index b9a2af3341..11852681be 100644
> --- a/llvm/lib/Target/Mips/MCTargetDesc/MipsBaseInfo.h
> +++ b/llvm/lib/Target/Mips/MCTargetDesc/MipsBaseInfo.h
> @@ -27,118 +27,118 @@ namespace llvm {
> ///
> namespace MipsII {
> /// Target Operand Flag enum.
> - enum TOF {
> - //===------------------------------------------------------------------===//
> - // Mips Specific MachineOperand flags.
> -
> - MO_NO_FLAG,
> -
> - /// MO_GOT - Represents the offset into the global offset table at which
> - /// the address the relocation entry symbol resides during execution.
> - MO_GOT,
> -
> - /// MO_GOT_CALL - Represents the offset into the global offset table at
> - /// which the address of a call site relocation entry symbol resides
> - /// during execution. This is different from the above since this flag
> - /// can only be present in call instructions.
> - MO_GOT_CALL,
> -
> - /// MO_GPREL - Represents the offset from the current gp value to be used
> - /// for the relocatable object file being produced.
> - MO_GPREL,
> -
> - /// MO_ABS_HI/LO - Represents the hi or low part of an absolute symbol
> - /// address.
> - MO_ABS_HI,
> - MO_ABS_LO,
> -
> - /// MO_TLSGD - Represents the offset into the global offset table at which
> - // the module ID and TSL block offset reside during execution (General
> - // Dynamic TLS).
> - MO_TLSGD,
> -
> - /// MO_TLSLDM - Represents the offset into the global offset table at which
> - // the module ID and TSL block offset reside during execution (Local
> - // Dynamic TLS).
> - MO_TLSLDM,
> - MO_DTPREL_HI,
> - MO_DTPREL_LO,
> -
> - /// MO_GOTTPREL - Represents the offset from the thread pointer (Initial
> - // Exec TLS).
> - MO_GOTTPREL,
> -
> - /// MO_TPREL_HI/LO - Represents the hi and low part of the offset from
> - // the thread pointer (Local Exec TLS).
> - MO_TPREL_HI,
> - MO_TPREL_LO,
> -
> - // N32/64 Flags.
> - MO_GPOFF_HI,
> - MO_GPOFF_LO,
> - MO_GOT_DISP,
> - MO_GOT_PAGE,
> - MO_GOT_OFST,
> -
> - /// MO_HIGHER/HIGHEST - Represents the highest or higher half word of a
> - /// 64-bit symbol address.
> - MO_HIGHER,
> - MO_HIGHEST,
> -
> - /// MO_GOT_HI16/LO16, MO_CALL_HI16/LO16 - Relocations used for large GOTs.
> - MO_GOT_HI16,
> - MO_GOT_LO16,
> - MO_CALL_HI16,
> - MO_CALL_LO16,
> -
> - /// Helper operand used to generate R_MIPS_JALR
> - MO_JALR,
> -
> - /// MO_DLLIMPORT - On a symbol operand "FOO", this indicates that the
> - /// reference is actually to the "__imp_FOO" symbol. This is used for
> - /// dllimport linkage on windows.
> - MO_DLLIMPORT = 0x20,
> - };
> -
> - enum {
> - //===------------------------------------------------------------------===//
> - // Instruction encodings. These are the standard/most common forms for
> - // Mips instructions.
> - //
> -
> - // Pseudo - This represents an instruction that is a pseudo instruction
> - // or one that has not been implemented yet. It is illegal to code generate
> - // it, but tolerated for intermediate implementation stages.
> - Pseudo = 0,
> -
> - /// FrmR - This form is for instructions of the format R.
> - FrmR = 1,
> - /// FrmI - This form is for instructions of the format I.
> - FrmI = 2,
> - /// FrmJ - This form is for instructions of the format J.
> - FrmJ = 3,
> - /// FrmFR - This form is for instructions of the format FR.
> - FrmFR = 4,
> - /// FrmFI - This form is for instructions of the format FI.
> - FrmFI = 5,
> - /// FrmOther - This form is for instructions that have no specific format.
> - FrmOther = 6,
> -
> - FormMask = 15,
> - /// IsCTI - Instruction is a Control Transfer Instruction.
> - IsCTI = 1 << 4,
> - /// HasForbiddenSlot - Instruction has a forbidden slot.
> - HasForbiddenSlot = 1 << 5,
> - /// HasFCCRegOperand - Instruction uses an $fcc<x> register.
> - HasFCCRegOperand = 1 << 6
> -
> - };
> -
> - enum OperandType : unsigned {
> - OPERAND_FIRST_MIPS_MEM_IMM = MCOI::OPERAND_FIRST_TARGET,
> - OPERAND_MEM_SIMM9 = OPERAND_FIRST_MIPS_MEM_IMM,
> - OPERAND_LAST_MIPS_MEM_IMM = OPERAND_MEM_SIMM9
> - };
> +enum TOF {
> + //===------------------------------------------------------------------===//
> + // Mips Specific MachineOperand flags.
> +
> + MO_NO_FLAG,
> +
> + /// MO_GOT - Represents the offset into the global offset table at which
> + /// the address the relocation entry symbol resides during execution.
> + MO_GOT,
> +
> + /// MO_GOT_CALL - Represents the offset into the global offset table at
> + /// which the address of a call site relocation entry symbol resides
> + /// during execution. This is different from the above since this flag
> + /// can only be present in call instructions.
> + MO_GOT_CALL,
> +
> + /// MO_GPREL - Represents the offset from the current gp value to be used
> + /// for the relocatable object file being produced.
> + MO_GPREL,
> +
> + /// MO_ABS_HI/LO - Represents the hi or low part of an absolute symbol
> + /// address.
> + MO_ABS_HI,
> + MO_ABS_LO,
> +
> + /// MO_TLSGD - Represents the offset into the global offset table at which
> + // the module ID and TSL block offset reside during execution (General
> + // Dynamic TLS).
> + MO_TLSGD,
> +
> + /// MO_TLSLDM - Represents the offset into the global offset table at which
> + // the module ID and TSL block offset reside during execution (Local
> + // Dynamic TLS).
> + MO_TLSLDM,
> + MO_DTPREL_HI,
> + MO_DTPREL_LO,
> +
> + /// MO_GOTTPREL - Represents the offset from the thread pointer (Initial
> + // Exec TLS).
> + MO_GOTTPREL,
> +
> + /// MO_TPREL_HI/LO - Represents the hi and low part of the offset from
> + // the thread pointer (Local Exec TLS).
> + MO_TPREL_HI,
> + MO_TPREL_LO,
> +
> + // N32/64 Flags.
> + MO_GPOFF_HI,
> + MO_GPOFF_LO,
> + MO_GOT_DISP,
> + MO_GOT_PAGE,
> + MO_GOT_OFST,
> +
> + /// MO_HIGHER/HIGHEST - Represents the highest or higher half word of a
> + /// 64-bit symbol address.
> + MO_HIGHER,
> + MO_HIGHEST,
> +
> + /// MO_GOT_HI16/LO16, MO_CALL_HI16/LO16 - Relocations used for large GOTs.
> + MO_GOT_HI16,
> + MO_GOT_LO16,
> + MO_CALL_HI16,
> + MO_CALL_LO16,
> +
> + /// Helper operand used to generate R_MIPS_JALR
> + MO_JALR,
> +
> + /// MO_DLLIMPORT - On a symbol operand "FOO", this indicates that the
> + /// reference is actually to the "__imp_FOO" symbol. This is used for
> + /// dllimport linkage on windows.
> + MO_DLLIMPORT = 0x20,
> +};
> +
> +enum {
> + //===------------------------------------------------------------------===//
> + // Instruction encodings. These are the standard/most common forms for
> + // Mips instructions.
> + //
> +
> + // Pseudo - This represents an instruction that is a pseudo instruction
> + // or one that has not been implemented yet. It is illegal to code generate
> + // it, but tolerated for intermediate implementation stages.
> + Pseudo = 0,
> +
> + /// FrmR - This form is for instructions of the format R.
> + FrmR = 1,
> + /// FrmI - This form is for instructions of the format I.
> + FrmI = 2,
> + /// FrmJ - This form is for instructions of the format J.
> + FrmJ = 3,
> + /// FrmFR - This form is for instructions of the format FR.
> + FrmFR = 4,
> + /// FrmFI - This form is for instructions of the format FI.
> + FrmFI = 5,
> + /// FrmOther - This form is for instructions that have no specific format.
> + FrmOther = 6,
> +
> + FormMask = 15,
> + /// IsCTI - Instruction is a Control Transfer Instruction.
> + IsCTI = 1 << 4,
> + /// HasForbiddenSlot - Instruction has a forbidden slot.
> + HasForbiddenSlot = 1 << 5,
> + /// HasFCCRegOperand - Instruction uses an $fcc<x> register.
> + HasFCCRegOperand = 1 << 6
> +
> +};
> +
> +enum OperandType : unsigned {
> + OPERAND_FIRST_MIPS_MEM_IMM = MCOI::OPERAND_FIRST_TARGET,
> + OPERAND_MEM_SIMM9 = OPERAND_FIRST_MIPS_MEM_IMM,
> + OPERAND_LAST_MIPS_MEM_IMM = OPERAND_MEM_SIMM9
> +};
> }
>
> inline static MCRegister getMSARegFromFReg(MCRegister Reg) {
> ```
I didn't follow clang-format, because it seems unnecessary to reindent the whole `TOF` enum just to add one member.
Also I don't see why I need to reindent the `OperandType` enum, which I didn't change.
Maybe because they are located in the `MipsII` namespace ?
However, if it is required, I can do it.
https://github.com/llvm/llvm-project/pull/120912
More information about the llvm-commits
mailing list