Home | History | Annotate | Line # | Download | only in compiler
      1 
      2 # TODO: Inherit Style from RADV when Clang 13 is default.
      3 # BasedOnStyle: InheritParentConfig
      4 
      5 # Copied from /src/amd/.clang-format
      6 # ACO specific rules can be found below
      7 AlignAfterOpenBracket: true
      8 AlignConsecutiveMacros: true
      9 AllowAllArgumentsOnNextLine: false
     10 AllowShortCaseLabelsOnASingleLine: false
     11 AllowShortFunctionsOnASingleLine: false
     12 AlwaysBreakAfterReturnType: TopLevelDefinitions
     13 BasedOnStyle: LLVM
     14 BraceWrapping:
     15   AfterControlStatement: false
     16   AfterEnum: false
     17   AfterFunction: true
     18   AfterStruct: false
     19   BeforeElse: false
     20   SplitEmptyFunction: true
     21 BinPackArguments: true
     22 BinPackParameters: true
     23 BreakBeforeBraces: Custom
     24 ColumnLimit: 100
     25 ContinuationIndentWidth: 3
     26 Cpp11BracedListStyle: false
     27 Cpp11BracedListStyle: true
     28 ForEachMacros:
     29   - LIST_FOR_EACH_ENTRY
     30   - LIST_FOR_EACH_ENTRY_SAFE
     31   - foreach_list_typed
     32   - util_dynarray_foreach
     33   - nir_foreach_variable
     34   - nir_foreach_variable_safe
     35   - nir_foreach_register
     36   - nir_foreach_register_safe
     37   - nir_foreach_use
     38   - nir_foreach_use_safe
     39   - nir_foreach_if_use
     40   - nir_foreach_if_use_safe
     41   - nir_foreach_def
     42   - nir_foreach_def_safe
     43   - nir_foreach_phi_src
     44   - nir_foreach_phi_src_safe
     45   - nir_foreach_parallel_copy_entry
     46   - nir_foreach_instr
     47   - nir_foreach_instr_reverse
     48   - nir_foreach_instr_safe
     49   - nir_foreach_instr_reverse_safe
     50   - nir_foreach_function
     51   - nir_foreach_block
     52   - nir_foreach_block_safe
     53   - nir_foreach_block_reverse
     54   - nir_foreach_block_reverse_safe
     55   - nir_foreach_block_in_cf_node
     56   - nir_foreach_shader_in_variable
     57   - nir_foreach_shader_out_variable_safe
     58   - nir_foreach_variable_in_list
     59   - nir_foreach_src
     60   - foreach_two_lists
     61   - foreach_bit
     62   - foreach_sched_node
     63   - foreach_src
     64   - foreach_src_n
     65   - foreach_ssa_use
     66   - foreach_ssa_srcp_n
     67   - foreach_ssa_srcp
     68   - foreach_ssa_src_n
     69   - foreach_ssa_src
     70   - foreach_input_n
     71   - foreach_input
     72   - foreach_output_n
     73   - foreach_output
     74   - foreach_instr
     75   - foreach_instr_rev
     76   - foreach_instr_safe
     77   - foreach_block
     78   - foreach_block_safe
     79   - foreach_block_rev
     80   - foreach_array
     81   - foreach_array_safe
     82   - foreach_name_n
     83   - foreach_name
     84   - foreach_def
     85   - foreach_use
     86   - set_foreach
     87 
     88 IncludeBlocks: Preserve
     89 IncludeCategories:
     90   - Regex:           '<[[:alnum:].]+>'
     91     Priority:        1
     92   - Regex:           '.*\/.*'
     93     Priority:        2
     94   - Regex:           '.*'
     95     Priority:        3
     96 IndentWidth: 3
     97 PenaltyBreakBeforeFirstCallParameter: 1
     98 PenaltyExcessCharacter: 100
     99 SpaceAfterCStyleCast: false
    100 SpaceBeforeCpp11BracedList: false
    101 SpaceBeforeCtorInitializerColon: false
    102 SpacesInContainerLiterals: false
    103 
    104 
    105 # ACO clang-format rules:
    106 Language: Cpp
    107 Standard: c++14
    108 
    109 # Force pointers to the type for C++
    110 DerivePointerAlignment: false
    111 PointerAlignment: Left
    112 
    113 # Same effect as IndentAccessModifiers: False
    114 AccessModifierOffset: -3
    115 
    116 # Compact some cumbersome C++ code
    117 SpaceBeforeCtorInitializerColon: True
    118 AllowShortCaseLabelsOnASingleLine: True
    119 AllowShortFunctionsOnASingleLine: InlineOnly
    120 AllowShortBlocksOnASingleLine: Empty
    121 AllowShortLambdasOnASingleLine: All
    122 
    123 # Wrap before LambdaBody and disable SplitEmptyFunction
    124 BraceWrapping:
    125   AfterControlStatement: false
    126   AfterEnum: false
    127   AfterFunction: true
    128   AfterStruct: false
    129   BeforeElse: false
    130   SplitEmptyFunction: false
    131   SplitEmptyRecord: false
    132   BeforeLambdaBody: true
    133 
    134 # Regroup #include blocks
    135 IncludeBlocks: Regroup
    136 IncludeCategories:
    137   - Regex:           '"aco.*'
    138     Priority:        1
    139   - Regex:           '"(common|llvm|vulkan)\/.*'
    140     Priority:        2
    141   - Regex:           '"(nir|util\/).*'
    142     Priority:        3
    143   - Regex:           '.*\/.*'
    144     Priority:        4
    145   - Regex:           '.*'
    146     Priority:        5
    147 
    148