/ scripts / cfg / compiler / llvm.py
llvm.py
 1  #
 2  # Copyright (C) 2008-2020 Advanced Micro Devices, Inc. All rights reserved.
 3  #
 4  # Redistribution and use in source and binary forms, with or without modification,
 5  # are permitted provided that the following conditions are met:
 6  # 1. Redistributions of source code must retain the above copyright notice,
 7  #    this list of conditions and the following disclaimer.
 8  # 2. Redistributions in binary form must reproduce the above copyright notice,
 9  #    this list of conditions and the following disclaimer in the documentation
10  #    and/or other materials provided with the distribution.
11  # 3. Neither the name of the copyright holder nor the names of its contributors
12  #    may be used to endorse or promote products derived from this software without
13  #    specific prior written permission.
14  #
15  # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
16  # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17  # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
18  # IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
19  # INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
20  # BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
21  # OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
22  # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
23  # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
24  # POSSIBILITY OF SUCH DAMAGE.
25  
26  from . import Compiler
27  
28  class LLVM(Compiler):
29      def __init__(self, prod_mode):
30          super(LLVM, self).__init__(prod_mode)
31  
32          compile_flags_release = [
33              # fp-contract needed to generate FMA instructions
34              '-ffp-contract=fast',
35              #'-Ofast',
36              # '-march=native',
37              # '-fipa-pta',
38              # '-funsafe-loop-optimizations',
39              # '-flto=4',
40          ]
41  
42          link_flags_debug = ['-fuse-ld=ld']
43          link_flags_release = ['-fuse-ld=ld']
44  
45          llvm = {
46              'CC'      : 'clang',
47              'CXX'     : 'clang++',
48              'CFLAGS'  : link_flags_release,
49              'LDFLAGS' : link_flags_release
50          }
51  
52          self.Append(llvm)
53  
54