mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-04-11 16:37:42 +00:00
Implement more feedback:
* Allow attributes to be added and removed singly or jointly so that in the future something like -pruneh can manipulate them more easily. * Move functions generally only useful for LLVM internals to the end of the accessors list instead of the beginning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35780 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
921169b103
commit
a3c4112a0e
@ -48,15 +48,6 @@ class ParamAttrsList {
|
||||
/// @name Accessors
|
||||
/// @{
|
||||
public:
|
||||
/// Returns the parameter index of a particular parameter attribute in this
|
||||
/// list of attributes. Note that the attr_index is an index into this
|
||||
/// class's list of attributes, not the index of the parameter. The result
|
||||
/// is the index of the parameter.
|
||||
/// @brief Get a parameter index
|
||||
uint16_t getParamIndex(unsigned attr_index) const {
|
||||
return attrs[attr_index].index;
|
||||
}
|
||||
|
||||
/// The parameter attributes for the \p indexth parameter are returned.
|
||||
/// The 0th parameter refers to the return type of the function. Note that
|
||||
/// the \p param_index is an index into the function's parameters, not an
|
||||
@ -75,17 +66,6 @@ class ParamAttrsList {
|
||||
return getParamAttrs(i) & attr;
|
||||
}
|
||||
|
||||
/// Determines how many parameter attributes are set in this ParamAttrsList.
|
||||
/// This says nothing about how many parameters the function has. It also
|
||||
/// says nothing about the highest parameter index that has attributes.
|
||||
/// @returns the number of parameter attributes in this ParamAttrsList.
|
||||
/// @brief Return the number of parameter attributes this type has.
|
||||
unsigned size() const { return attrs.size(); }
|
||||
|
||||
/// @returns true if this ParamAttrsList is empty.
|
||||
/// @brief Determine emptiness of ParamAttrsList.
|
||||
unsigned empty() const { return attrs.empty(); }
|
||||
|
||||
/// The set of ParameterAttributes set in Attributes is converted to a
|
||||
/// string of equivalent mnemonics. This is, presumably, for writing out
|
||||
/// the mnemonics for the assembly writer.
|
||||
@ -116,15 +96,65 @@ class ParamAttrsList {
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/// Returns the parameter index of a particular parameter attribute in this
|
||||
/// list of attributes. Note that the attr_index is an index into this
|
||||
/// class's list of attributes, not the index of a parameter. The result
|
||||
/// is the index of the parameter. Clients generally should not use this
|
||||
/// method. It is used internally by LLVM.
|
||||
/// @brief Get a parameter index
|
||||
uint16_t getParamIndex(unsigned attr_index) const {
|
||||
return attrs[attr_index].index;
|
||||
}
|
||||
|
||||
/// Determines how many parameter attributes are set in this ParamAttrsList.
|
||||
/// This says nothing about how many parameters the function has. It also
|
||||
/// says nothing about the highest parameter index that has attributes.
|
||||
/// Clients generally should not use this method. It is used internally by
|
||||
/// LLVM.
|
||||
/// @returns the number of parameter attributes in this ParamAttrsList.
|
||||
/// @brief Return the number of parameter attributes this type has.
|
||||
unsigned size() const { return attrs.size(); }
|
||||
|
||||
/// Clients generally should not use this method. It is used internally by
|
||||
/// LLVM.
|
||||
/// @returns true if this ParamAttrsList is empty.
|
||||
/// @brief Determine emptiness of ParamAttrsList.
|
||||
unsigned empty() const { return attrs.empty(); }
|
||||
|
||||
/// @}
|
||||
/// @name Mutators
|
||||
/// @{
|
||||
public:
|
||||
/// This adds a pair to the list of parameter index and attribute pairs
|
||||
/// represented by this class. If the parameter index already exists then
|
||||
/// its attributes are overwritten. Otherwise it is added to the list.
|
||||
/// This method will add the \p attr to the parameter with index
|
||||
/// \p param_index. If the parameter index does not exist it will be created
|
||||
/// and the \p will be the only attribute set. Otherwise, any existing
|
||||
/// attributes for the specified parameter remain set and the attribute
|
||||
/// given by \p attr is also set.
|
||||
/// @brief Add a single ParameterAttribute
|
||||
void addAttribute(uint16_t param_index, ParameterAttribute attr);
|
||||
|
||||
/// This method will remove the \p attr to the parameter with index
|
||||
/// \p param_index. If the parameter index does not exist in the list,
|
||||
/// an assertion will occur. If the specified attribute is the last
|
||||
/// attribute set for the specified parameter index, the attributes for
|
||||
/// that index are removed completely from the list (size is decremented).
|
||||
/// Otherwise, the specified attribute is removed from the set of attributes
|
||||
/// for the given index.
|
||||
/// @brief Remove a single ParameterAttribute
|
||||
void removeAttribute(uint16_t param_index, ParameterAttribute attr);
|
||||
|
||||
/// This is identical to addAttribute but permits you to set multiple
|
||||
/// attributes at the same time. The \p attrs value is expected to be a
|
||||
/// bitwise OR of the attributes you would like to have added.
|
||||
/// @brief Insert ParameterAttributes for an index
|
||||
void setAttributes(uint16_t param_index, uint16_t attrs);
|
||||
void addAttributes(uint16_t param_index, uint16_t attrs);
|
||||
|
||||
/// This is identical to removeAttribute but permits you to remove multiple
|
||||
/// attributes at the same time. The\p attrs value is expected to be a
|
||||
/// bitwise OR of the attribute syou would like to have removed.
|
||||
/// @brief Remove ParameterAttributes for an index
|
||||
void removeAttributes(uint16_t param_index, uint16_t attrs);
|
||||
|
||||
/// @}
|
||||
/// @name Data
|
||||
|
Loading…
x
Reference in New Issue
Block a user