Value.def 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. //===-------- llvm/IR/Value.def - File that describes Values ---v-*- C++ -*-===//
  2. //
  3. // The LLVM Compiler Infrastructure
  4. //
  5. // This file is distributed under the University of Illinois Open Source
  6. // License. See LICENSE.TXT for details.
  7. //
  8. //===----------------------------------------------------------------------===//
  9. //
  10. // This file contains descriptions of the various LLVM values. This is
  11. // used as a central place for enumerating the different values.
  12. //
  13. //===----------------------------------------------------------------------===//
  14. // Provide definitions of macros so that users of this file do not have to
  15. // define everything to use it...
  16. //
  17. #if !(defined HANDLE_GLOBAL_VALUE || defined HANDLE_CONSTANT || \
  18. defined HANDLE_INSTRUCTION || defined HANDLE_INLINE_ASM_VALUE || \
  19. defined HANDLE_METADATA_VALUE || defined HANDLE_VALUE || \
  20. defined HANDLE_CONSTANT_MARKER)
  21. #error "Missing macro definition of HANDLE_VALUE*"
  22. #endif
  23. #ifndef HANDLE_GLOBAL_VALUE
  24. #define HANDLE_GLOBAL_VALUE(ValueName) HANDLE_CONSTANT(ValueName)
  25. #endif
  26. #ifndef HANDLE_CONSTANT
  27. #define HANDLE_CONSTANT(ValueName) HANDLE_VALUE(ValueName)
  28. #endif
  29. #ifndef HANDLE_INSTRUCTION
  30. #define HANDLE_INSTRUCTION(ValueName) HANDLE_VALUE(ValueName)
  31. #endif
  32. #ifndef HANDLE_INLINE_ASM_VALUE
  33. #define HANDLE_INLINE_ASM_VALUE(ValueName) HANDLE_VALUE(ValueName)
  34. #endif
  35. #ifndef HANDLE_METADATA_VALUE
  36. #define HANDLE_METADATA_VALUE(ValueName) HANDLE_VALUE(ValueName)
  37. #endif
  38. #ifndef HANDLE_VALUE
  39. #define HANDLE_VALUE(ValueName)
  40. #endif
  41. #ifndef HANDLE_CONSTANT_MARKER
  42. #define HANDLE_CONSTANT_MARKER(MarkerName, ValueName)
  43. #endif
  44. HANDLE_VALUE(Argument)
  45. HANDLE_VALUE(BasicBlock)
  46. HANDLE_GLOBAL_VALUE(Function)
  47. HANDLE_GLOBAL_VALUE(GlobalAlias)
  48. HANDLE_GLOBAL_VALUE(GlobalVariable)
  49. HANDLE_CONSTANT(UndefValue)
  50. HANDLE_CONSTANT(BlockAddress)
  51. HANDLE_CONSTANT(ConstantExpr)
  52. HANDLE_CONSTANT(ConstantAggregateZero)
  53. HANDLE_CONSTANT(ConstantDataArray)
  54. HANDLE_CONSTANT(ConstantDataVector)
  55. HANDLE_CONSTANT(ConstantInt)
  56. HANDLE_CONSTANT(ConstantFP)
  57. HANDLE_CONSTANT(ConstantArray)
  58. HANDLE_CONSTANT(ConstantStruct)
  59. HANDLE_CONSTANT(ConstantVector)
  60. HANDLE_CONSTANT(ConstantPointerNull)
  61. HANDLE_METADATA_VALUE(MetadataAsValue)
  62. HANDLE_INLINE_ASM_VALUE(InlineAsm)
  63. HANDLE_INSTRUCTION(Instruction)
  64. // Enum values starting at InstructionVal are used for Instructions;
  65. // don't add new values here!
  66. HANDLE_CONSTANT_MARKER(ConstantFirstVal, Function)
  67. HANDLE_CONSTANT_MARKER(ConstantLastVal, ConstantPointerNull)
  68. #undef HANDLE_GLOBAL_VALUE
  69. #undef HANDLE_CONSTANT
  70. #undef HANDLE_INSTRUCTION
  71. #undef HANDLE_METADATA_VALUE
  72. #undef HANDLE_INLINE_ASM_VALUE
  73. #undef HANDLE_VALUE
  74. #undef HANDLE_CONSTANT_MARKER