[clang] [flang] [flang] Implement -mcmodel flag (PR #95411)

2024-07-03 Thread Mats Petersson via cfe-commits

Leporacanthicus wrote:

Working on a fix - it should be trivial, just need to check that that it still 
builds and passes. 

[Trying to generate code without the correct target enabled!]

https://github.com/llvm/llvm-project/pull/95411
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [flang] [flang] Implement -mcmodel flag (PR #95411)

2024-07-03 Thread LLVM Continuous Integration via cfe-commits

llvm-ci wrote:

LLVM Buildbot has detected a new failure on builder 
`flang-aarch64-debug-reverse-iteration` running on 
`linaro-flang-aarch64-debug-reverse-iteration` while building `clang,flang` at 
step 6 "test-build-unified-tree-check-flang".

Full details are available at: 
https://lab.llvm.org/buildbot/#/builders/20/builds/598

Here is the relevant piece of the build log for the reference:
```
Step 6 (test-build-unified-tree-check-flang) failure: test (failure)
 TEST 'Flang :: Lower/mcmodel.f90' FAILED 

Exit Code: 2

Command Output (stderr):
--
RUN: at line 1: 
/home/tcwg-buildbot/worker/flang-aarch64-debug-reverse-iteration/build/bin/flang-new
 -fc1 -triple aarch64 -emit-llvm -mcmodel=tiny 
/home/tcwg-buildbot/worker/flang-aarch64-debug-reverse-iteration/llvm-project/flang/test/Lower/mcmodel.f90
 -o - | 
/home/tcwg-buildbot/worker/flang-aarch64-debug-reverse-iteration/build/bin/FileCheck
 
/home/tcwg-buildbot/worker/flang-aarch64-debug-reverse-iteration/llvm-project/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-TINY
+ 
/home/tcwg-buildbot/worker/flang-aarch64-debug-reverse-iteration/build/bin/FileCheck
 
/home/tcwg-buildbot/worker/flang-aarch64-debug-reverse-iteration/llvm-project/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-TINY
+ 
/home/tcwg-buildbot/worker/flang-aarch64-debug-reverse-iteration/build/bin/flang-new
 -fc1 -triple aarch64 -emit-llvm -mcmodel=tiny 
/home/tcwg-buildbot/worker/flang-aarch64-debug-reverse-iteration/llvm-project/flang/test/Lower/mcmodel.f90
 -o -
RUN: at line 2: 
/home/tcwg-buildbot/worker/flang-aarch64-debug-reverse-iteration/build/bin/flang-new
 -fc1 -emit-llvm -mcmodel=small 
/home/tcwg-buildbot/worker/flang-aarch64-debug-reverse-iteration/llvm-project/flang/test/Lower/mcmodel.f90
 -o - | 
/home/tcwg-buildbot/worker/flang-aarch64-debug-reverse-iteration/build/bin/FileCheck
 
/home/tcwg-buildbot/worker/flang-aarch64-debug-reverse-iteration/llvm-project/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-SMALL
+ 
/home/tcwg-buildbot/worker/flang-aarch64-debug-reverse-iteration/build/bin/FileCheck
 
/home/tcwg-buildbot/worker/flang-aarch64-debug-reverse-iteration/llvm-project/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-SMALL
+ 
/home/tcwg-buildbot/worker/flang-aarch64-debug-reverse-iteration/build/bin/flang-new
 -fc1 -emit-llvm -mcmodel=small 
/home/tcwg-buildbot/worker/flang-aarch64-debug-reverse-iteration/llvm-project/flang/test/Lower/mcmodel.f90
 -o -
RUN: at line 3: 
/home/tcwg-buildbot/worker/flang-aarch64-debug-reverse-iteration/build/bin/flang-new
 -fc1 -triple x86_64-unknown-linux-gnu -emit-llvm -mcmodel=kernel 
/home/tcwg-buildbot/worker/flang-aarch64-debug-reverse-iteration/llvm-project/flang/test/Lower/mcmodel.f90
 -o - | 
/home/tcwg-buildbot/worker/flang-aarch64-debug-reverse-iteration/build/bin/FileCheck
 
/home/tcwg-buildbot/worker/flang-aarch64-debug-reverse-iteration/llvm-project/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-KERNEL
+ 
/home/tcwg-buildbot/worker/flang-aarch64-debug-reverse-iteration/build/bin/flang-new
 -fc1 -triple x86_64-unknown-linux-gnu -emit-llvm -mcmodel=kernel 
/home/tcwg-buildbot/worker/flang-aarch64-debug-reverse-iteration/llvm-project/flang/test/Lower/mcmodel.f90
 -o -
+ 
/home/tcwg-buildbot/worker/flang-aarch64-debug-reverse-iteration/build/bin/FileCheck
 
/home/tcwg-buildbot/worker/flang-aarch64-debug-reverse-iteration/llvm-project/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-KERNEL
error: unable to create target: 'No available targets are compatible with 
triple "x86_64-unknown-linux-gnu"'
FileCheck error: '' is empty.
FileCheck command line:  
/home/tcwg-buildbot/worker/flang-aarch64-debug-reverse-iteration/build/bin/FileCheck
 
/home/tcwg-buildbot/worker/flang-aarch64-debug-reverse-iteration/llvm-project/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-KERNEL

--




```

https://github.com/llvm/llvm-project/pull/95411
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [flang] [flang] Implement -mcmodel flag (PR #95411)

2024-07-03 Thread LLVM Continuous Integration via cfe-commits

llvm-ci wrote:

LLVM Buildbot has detected a new failure on builder `flang-aarch64-dylib` 
running on `linaro-flang-aarch64-dylib` while building `clang,flang` at step 6 
"test-build-unified-tree-check-flang".

Full details are available at: 
https://lab.llvm.org/buildbot/#/builders/50/builds/696

Here is the relevant piece of the build log for the reference:
```
Step 6 (test-build-unified-tree-check-flang) failure: test (failure)
 TEST 'Flang :: Lower/mcmodel.f90' FAILED 

Exit Code: 2

Command Output (stderr):
--
RUN: at line 1: 
/home/tcwg-buildbot/worker/flang-aarch64-dylib/build/bin/flang-new -fc1 -triple 
aarch64 -emit-llvm -mcmodel=tiny 
/home/tcwg-buildbot/worker/flang-aarch64-dylib/llvm-project/flang/test/Lower/mcmodel.f90
 -o - | /home/tcwg-buildbot/worker/flang-aarch64-dylib/build/bin/FileCheck 
/home/tcwg-buildbot/worker/flang-aarch64-dylib/llvm-project/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-TINY
+ /home/tcwg-buildbot/worker/flang-aarch64-dylib/build/bin/flang-new -fc1 
-triple aarch64 -emit-llvm -mcmodel=tiny 
/home/tcwg-buildbot/worker/flang-aarch64-dylib/llvm-project/flang/test/Lower/mcmodel.f90
 -o -
+ /home/tcwg-buildbot/worker/flang-aarch64-dylib/build/bin/FileCheck 
/home/tcwg-buildbot/worker/flang-aarch64-dylib/llvm-project/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-TINY
RUN: at line 2: 
/home/tcwg-buildbot/worker/flang-aarch64-dylib/build/bin/flang-new -fc1 
-emit-llvm -mcmodel=small 
/home/tcwg-buildbot/worker/flang-aarch64-dylib/llvm-project/flang/test/Lower/mcmodel.f90
 -o - | /home/tcwg-buildbot/worker/flang-aarch64-dylib/build/bin/FileCheck 
/home/tcwg-buildbot/worker/flang-aarch64-dylib/llvm-project/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-SMALL
+ /home/tcwg-buildbot/worker/flang-aarch64-dylib/build/bin/flang-new -fc1 
-emit-llvm -mcmodel=small 
/home/tcwg-buildbot/worker/flang-aarch64-dylib/llvm-project/flang/test/Lower/mcmodel.f90
 -o -
+ /home/tcwg-buildbot/worker/flang-aarch64-dylib/build/bin/FileCheck 
/home/tcwg-buildbot/worker/flang-aarch64-dylib/llvm-project/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-SMALL
RUN: at line 3: 
/home/tcwg-buildbot/worker/flang-aarch64-dylib/build/bin/flang-new -fc1 -triple 
x86_64-unknown-linux-gnu -emit-llvm -mcmodel=kernel 
/home/tcwg-buildbot/worker/flang-aarch64-dylib/llvm-project/flang/test/Lower/mcmodel.f90
 -o - | /home/tcwg-buildbot/worker/flang-aarch64-dylib/build/bin/FileCheck 
/home/tcwg-buildbot/worker/flang-aarch64-dylib/llvm-project/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-KERNEL
+ /home/tcwg-buildbot/worker/flang-aarch64-dylib/build/bin/flang-new -fc1 
-triple x86_64-unknown-linux-gnu -emit-llvm -mcmodel=kernel 
/home/tcwg-buildbot/worker/flang-aarch64-dylib/llvm-project/flang/test/Lower/mcmodel.f90
 -o -
+ /home/tcwg-buildbot/worker/flang-aarch64-dylib/build/bin/FileCheck 
/home/tcwg-buildbot/worker/flang-aarch64-dylib/llvm-project/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-KERNEL
error: unable to create target: 'No available targets are compatible with 
triple "x86_64-unknown-linux-gnu"'
FileCheck error: '' is empty.
FileCheck command line:  
/home/tcwg-buildbot/worker/flang-aarch64-dylib/build/bin/FileCheck 
/home/tcwg-buildbot/worker/flang-aarch64-dylib/llvm-project/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-KERNEL

--




```

https://github.com/llvm/llvm-project/pull/95411
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [flang] [flang] Implement -mcmodel flag (PR #95411)

2024-07-03 Thread LLVM Continuous Integration via cfe-commits

llvm-ci wrote:

LLVM Buildbot has detected a new failure on builder `flang-aarch64-rel-assert` 
running on `linaro-flang-aarch64-rel-assert` while building `clang,flang` at 
step 6 "test-build-unified-tree-check-flang".

Full details are available at: 
https://lab.llvm.org/buildbot/#/builders/29/builds/721

Here is the relevant piece of the build log for the reference:
```
Step 6 (test-build-unified-tree-check-flang) failure: test (failure)
 TEST 'Flang :: Lower/mcmodel.f90' FAILED 

Exit Code: 2

Command Output (stderr):
--
RUN: at line 1: 
/home/tcwg-buildbot/worker/flang-aarch64-rel-assert/build/bin/flang-new -fc1 
-triple aarch64 -emit-llvm -mcmodel=tiny 
/home/tcwg-buildbot/worker/flang-aarch64-rel-assert/llvm-project/flang/test/Lower/mcmodel.f90
 -o - | /home/tcwg-buildbot/worker/flang-aarch64-rel-assert/build/bin/FileCheck 
/home/tcwg-buildbot/worker/flang-aarch64-rel-assert/llvm-project/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-TINY
+ /home/tcwg-buildbot/worker/flang-aarch64-rel-assert/build/bin/flang-new -fc1 
-triple aarch64 -emit-llvm -mcmodel=tiny 
/home/tcwg-buildbot/worker/flang-aarch64-rel-assert/llvm-project/flang/test/Lower/mcmodel.f90
 -o -
+ /home/tcwg-buildbot/worker/flang-aarch64-rel-assert/build/bin/FileCheck 
/home/tcwg-buildbot/worker/flang-aarch64-rel-assert/llvm-project/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-TINY
RUN: at line 2: 
/home/tcwg-buildbot/worker/flang-aarch64-rel-assert/build/bin/flang-new -fc1 
-emit-llvm -mcmodel=small 
/home/tcwg-buildbot/worker/flang-aarch64-rel-assert/llvm-project/flang/test/Lower/mcmodel.f90
 -o - | /home/tcwg-buildbot/worker/flang-aarch64-rel-assert/build/bin/FileCheck 
/home/tcwg-buildbot/worker/flang-aarch64-rel-assert/llvm-project/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-SMALL
+ /home/tcwg-buildbot/worker/flang-aarch64-rel-assert/build/bin/flang-new -fc1 
-emit-llvm -mcmodel=small 
/home/tcwg-buildbot/worker/flang-aarch64-rel-assert/llvm-project/flang/test/Lower/mcmodel.f90
 -o -
+ /home/tcwg-buildbot/worker/flang-aarch64-rel-assert/build/bin/FileCheck 
/home/tcwg-buildbot/worker/flang-aarch64-rel-assert/llvm-project/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-SMALL
RUN: at line 3: 
/home/tcwg-buildbot/worker/flang-aarch64-rel-assert/build/bin/flang-new -fc1 
-triple x86_64-unknown-linux-gnu -emit-llvm -mcmodel=kernel 
/home/tcwg-buildbot/worker/flang-aarch64-rel-assert/llvm-project/flang/test/Lower/mcmodel.f90
 -o - | /home/tcwg-buildbot/worker/flang-aarch64-rel-assert/build/bin/FileCheck 
/home/tcwg-buildbot/worker/flang-aarch64-rel-assert/llvm-project/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-KERNEL
+ /home/tcwg-buildbot/worker/flang-aarch64-rel-assert/build/bin/flang-new -fc1 
-triple x86_64-unknown-linux-gnu -emit-llvm -mcmodel=kernel 
/home/tcwg-buildbot/worker/flang-aarch64-rel-assert/llvm-project/flang/test/Lower/mcmodel.f90
 -o -
+ /home/tcwg-buildbot/worker/flang-aarch64-rel-assert/build/bin/FileCheck 
/home/tcwg-buildbot/worker/flang-aarch64-rel-assert/llvm-project/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-KERNEL
error: unable to create target: 'No available targets are compatible with 
triple "x86_64-unknown-linux-gnu"'
FileCheck error: '' is empty.
FileCheck command line:  
/home/tcwg-buildbot/worker/flang-aarch64-rel-assert/build/bin/FileCheck 
/home/tcwg-buildbot/worker/flang-aarch64-rel-assert/llvm-project/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-KERNEL

--




```

https://github.com/llvm/llvm-project/pull/95411
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [flang] [flang] Implement -mcmodel flag (PR #95411)

2024-07-03 Thread LLVM Continuous Integration via cfe-commits

llvm-ci wrote:

LLVM Buildbot has detected a new failure on builder `flang-aarch64-release` 
running on `linaro-flang-aarch64-release` while building `clang,flang` at step 
6 "test-build-unified-tree-check-flang".

Full details are available at: 
https://lab.llvm.org/buildbot/#/builders/172/builds/636

Here is the relevant piece of the build log for the reference:
```
Step 6 (test-build-unified-tree-check-flang) failure: test (failure)
 TEST 'Flang :: Lower/mcmodel.f90' FAILED 

Exit Code: 2

Command Output (stderr):
--
RUN: at line 1: 
/home/tcwg-buildbot/worker/flang-aarch64-release/build/bin/flang-new -fc1 
-triple aarch64 -emit-llvm -mcmodel=tiny 
/home/tcwg-buildbot/worker/flang-aarch64-release/llvm-project/flang/test/Lower/mcmodel.f90
 -o - | /home/tcwg-buildbot/worker/flang-aarch64-release/build/bin/FileCheck 
/home/tcwg-buildbot/worker/flang-aarch64-release/llvm-project/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-TINY
+ /home/tcwg-buildbot/worker/flang-aarch64-release/build/bin/flang-new -fc1 
-triple aarch64 -emit-llvm -mcmodel=tiny 
/home/tcwg-buildbot/worker/flang-aarch64-release/llvm-project/flang/test/Lower/mcmodel.f90
 -o -
+ /home/tcwg-buildbot/worker/flang-aarch64-release/build/bin/FileCheck 
/home/tcwg-buildbot/worker/flang-aarch64-release/llvm-project/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-TINY
RUN: at line 2: 
/home/tcwg-buildbot/worker/flang-aarch64-release/build/bin/flang-new -fc1 
-emit-llvm -mcmodel=small 
/home/tcwg-buildbot/worker/flang-aarch64-release/llvm-project/flang/test/Lower/mcmodel.f90
 -o - | /home/tcwg-buildbot/worker/flang-aarch64-release/build/bin/FileCheck 
/home/tcwg-buildbot/worker/flang-aarch64-release/llvm-project/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-SMALL
+ /home/tcwg-buildbot/worker/flang-aarch64-release/build/bin/FileCheck 
/home/tcwg-buildbot/worker/flang-aarch64-release/llvm-project/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-SMALL
+ /home/tcwg-buildbot/worker/flang-aarch64-release/build/bin/flang-new -fc1 
-emit-llvm -mcmodel=small 
/home/tcwg-buildbot/worker/flang-aarch64-release/llvm-project/flang/test/Lower/mcmodel.f90
 -o -
RUN: at line 3: 
/home/tcwg-buildbot/worker/flang-aarch64-release/build/bin/flang-new -fc1 
-triple x86_64-unknown-linux-gnu -emit-llvm -mcmodel=kernel 
/home/tcwg-buildbot/worker/flang-aarch64-release/llvm-project/flang/test/Lower/mcmodel.f90
 -o - | /home/tcwg-buildbot/worker/flang-aarch64-release/build/bin/FileCheck 
/home/tcwg-buildbot/worker/flang-aarch64-release/llvm-project/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-KERNEL
+ /home/tcwg-buildbot/worker/flang-aarch64-release/build/bin/FileCheck 
/home/tcwg-buildbot/worker/flang-aarch64-release/llvm-project/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-KERNEL
+ /home/tcwg-buildbot/worker/flang-aarch64-release/build/bin/flang-new -fc1 
-triple x86_64-unknown-linux-gnu -emit-llvm -mcmodel=kernel 
/home/tcwg-buildbot/worker/flang-aarch64-release/llvm-project/flang/test/Lower/mcmodel.f90
 -o -
error: unable to create target: 'No available targets are compatible with 
triple "x86_64-unknown-linux-gnu"'
FileCheck error: '' is empty.
FileCheck command line:  
/home/tcwg-buildbot/worker/flang-aarch64-release/build/bin/FileCheck 
/home/tcwg-buildbot/worker/flang-aarch64-release/llvm-project/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-KERNEL

--




```

https://github.com/llvm/llvm-project/pull/95411
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [flang] [flang] Implement -mcmodel flag (PR #95411)

2024-07-03 Thread LLVM Continuous Integration via cfe-commits

llvm-ci wrote:

LLVM Buildbot has detected a new failure on builder `flang-aarch64-sharedlibs` 
running on `linaro-flang-aarch64-sharedlibs` while building `clang,flang` at 
step 6 "test-build-unified-tree-check-flang".

Full details are available at: 
https://lab.llvm.org/buildbot/#/builders/80/builds/701

Here is the relevant piece of the build log for the reference:
```
Step 6 (test-build-unified-tree-check-flang) failure: test (failure)
 TEST 'Flang :: Lower/mcmodel.f90' FAILED 

Exit Code: 2

Command Output (stderr):
--
RUN: at line 1: 
/home/tcwg-buildbot/worker/flang-aarch64-sharedlibs/build/bin/flang-new -fc1 
-triple aarch64 -emit-llvm -mcmodel=tiny 
/home/tcwg-buildbot/worker/flang-aarch64-sharedlibs/llvm-project/flang/test/Lower/mcmodel.f90
 -o - | /home/tcwg-buildbot/worker/flang-aarch64-sharedlibs/build/bin/FileCheck 
/home/tcwg-buildbot/worker/flang-aarch64-sharedlibs/llvm-project/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-TINY
+ /home/tcwg-buildbot/worker/flang-aarch64-sharedlibs/build/bin/FileCheck 
/home/tcwg-buildbot/worker/flang-aarch64-sharedlibs/llvm-project/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-TINY
+ /home/tcwg-buildbot/worker/flang-aarch64-sharedlibs/build/bin/flang-new -fc1 
-triple aarch64 -emit-llvm -mcmodel=tiny 
/home/tcwg-buildbot/worker/flang-aarch64-sharedlibs/llvm-project/flang/test/Lower/mcmodel.f90
 -o -
RUN: at line 2: 
/home/tcwg-buildbot/worker/flang-aarch64-sharedlibs/build/bin/flang-new -fc1 
-emit-llvm -mcmodel=small 
/home/tcwg-buildbot/worker/flang-aarch64-sharedlibs/llvm-project/flang/test/Lower/mcmodel.f90
 -o - | /home/tcwg-buildbot/worker/flang-aarch64-sharedlibs/build/bin/FileCheck 
/home/tcwg-buildbot/worker/flang-aarch64-sharedlibs/llvm-project/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-SMALL
+ /home/tcwg-buildbot/worker/flang-aarch64-sharedlibs/build/bin/flang-new -fc1 
-emit-llvm -mcmodel=small 
/home/tcwg-buildbot/worker/flang-aarch64-sharedlibs/llvm-project/flang/test/Lower/mcmodel.f90
 -o -
+ /home/tcwg-buildbot/worker/flang-aarch64-sharedlibs/build/bin/FileCheck 
/home/tcwg-buildbot/worker/flang-aarch64-sharedlibs/llvm-project/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-SMALL
RUN: at line 3: 
/home/tcwg-buildbot/worker/flang-aarch64-sharedlibs/build/bin/flang-new -fc1 
-triple x86_64-unknown-linux-gnu -emit-llvm -mcmodel=kernel 
/home/tcwg-buildbot/worker/flang-aarch64-sharedlibs/llvm-project/flang/test/Lower/mcmodel.f90
 -o - | /home/tcwg-buildbot/worker/flang-aarch64-sharedlibs/build/bin/FileCheck 
/home/tcwg-buildbot/worker/flang-aarch64-sharedlibs/llvm-project/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-KERNEL
+ /home/tcwg-buildbot/worker/flang-aarch64-sharedlibs/build/bin/FileCheck 
/home/tcwg-buildbot/worker/flang-aarch64-sharedlibs/llvm-project/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-KERNEL
+ /home/tcwg-buildbot/worker/flang-aarch64-sharedlibs/build/bin/flang-new -fc1 
-triple x86_64-unknown-linux-gnu -emit-llvm -mcmodel=kernel 
/home/tcwg-buildbot/worker/flang-aarch64-sharedlibs/llvm-project/flang/test/Lower/mcmodel.f90
 -o -
error: unable to create target: 'No available targets are compatible with 
triple "x86_64-unknown-linux-gnu"'
FileCheck error: '' is empty.
FileCheck command line:  
/home/tcwg-buildbot/worker/flang-aarch64-sharedlibs/build/bin/FileCheck 
/home/tcwg-buildbot/worker/flang-aarch64-sharedlibs/llvm-project/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-KERNEL

--




```

https://github.com/llvm/llvm-project/pull/95411
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [flang] [flang] Implement -mcmodel flag (PR #95411)

2024-07-03 Thread LLVM Continuous Integration via cfe-commits

llvm-ci wrote:

LLVM Buildbot has detected a new failure on builder `flang-aarch64-latest-gcc` 
running on `linaro-flang-aarch64-latest-gcc` while building `clang,flang` at 
step 6 "test-build-unified-tree-check-flang".

Full details are available at: 
https://lab.llvm.org/buildbot/#/builders/130/builds/647

Here is the relevant piece of the build log for the reference:
```
Step 6 (test-build-unified-tree-check-flang) failure: test (failure)
 TEST 'Flang :: Lower/mcmodel.f90' FAILED 

Exit Code: 2

Command Output (stderr):
--
RUN: at line 1: 
/home/tcwg-buildbot/worker/flang-aarch64-latest-gcc/build/bin/flang-new -fc1 
-triple aarch64 -emit-llvm -mcmodel=tiny 
/home/tcwg-buildbot/worker/flang-aarch64-latest-gcc/llvm-project/flang/test/Lower/mcmodel.f90
 -o - | /home/tcwg-buildbot/worker/flang-aarch64-latest-gcc/build/bin/FileCheck 
/home/tcwg-buildbot/worker/flang-aarch64-latest-gcc/llvm-project/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-TINY
+ /home/tcwg-buildbot/worker/flang-aarch64-latest-gcc/build/bin/flang-new -fc1 
-triple aarch64 -emit-llvm -mcmodel=tiny 
/home/tcwg-buildbot/worker/flang-aarch64-latest-gcc/llvm-project/flang/test/Lower/mcmodel.f90
 -o -
+ /home/tcwg-buildbot/worker/flang-aarch64-latest-gcc/build/bin/FileCheck 
/home/tcwg-buildbot/worker/flang-aarch64-latest-gcc/llvm-project/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-TINY
RUN: at line 2: 
/home/tcwg-buildbot/worker/flang-aarch64-latest-gcc/build/bin/flang-new -fc1 
-emit-llvm -mcmodel=small 
/home/tcwg-buildbot/worker/flang-aarch64-latest-gcc/llvm-project/flang/test/Lower/mcmodel.f90
 -o - | /home/tcwg-buildbot/worker/flang-aarch64-latest-gcc/build/bin/FileCheck 
/home/tcwg-buildbot/worker/flang-aarch64-latest-gcc/llvm-project/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-SMALL
+ /home/tcwg-buildbot/worker/flang-aarch64-latest-gcc/build/bin/flang-new -fc1 
-emit-llvm -mcmodel=small 
/home/tcwg-buildbot/worker/flang-aarch64-latest-gcc/llvm-project/flang/test/Lower/mcmodel.f90
 -o -
+ /home/tcwg-buildbot/worker/flang-aarch64-latest-gcc/build/bin/FileCheck 
/home/tcwg-buildbot/worker/flang-aarch64-latest-gcc/llvm-project/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-SMALL
RUN: at line 3: 
/home/tcwg-buildbot/worker/flang-aarch64-latest-gcc/build/bin/flang-new -fc1 
-triple x86_64-unknown-linux-gnu -emit-llvm -mcmodel=kernel 
/home/tcwg-buildbot/worker/flang-aarch64-latest-gcc/llvm-project/flang/test/Lower/mcmodel.f90
 -o - | /home/tcwg-buildbot/worker/flang-aarch64-latest-gcc/build/bin/FileCheck 
/home/tcwg-buildbot/worker/flang-aarch64-latest-gcc/llvm-project/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-KERNEL
+ /home/tcwg-buildbot/worker/flang-aarch64-latest-gcc/build/bin/FileCheck 
/home/tcwg-buildbot/worker/flang-aarch64-latest-gcc/llvm-project/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-KERNEL
+ /home/tcwg-buildbot/worker/flang-aarch64-latest-gcc/build/bin/flang-new -fc1 
-triple x86_64-unknown-linux-gnu -emit-llvm -mcmodel=kernel 
/home/tcwg-buildbot/worker/flang-aarch64-latest-gcc/llvm-project/flang/test/Lower/mcmodel.f90
 -o -
error: unable to create target: 'No available targets are compatible with 
triple "x86_64-unknown-linux-gnu"'
FileCheck error: '' is empty.
FileCheck command line:  
/home/tcwg-buildbot/worker/flang-aarch64-latest-gcc/build/bin/FileCheck 
/home/tcwg-buildbot/worker/flang-aarch64-latest-gcc/llvm-project/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-KERNEL

--




```

https://github.com/llvm/llvm-project/pull/95411
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [flang] [flang] Implement -mcmodel flag (PR #95411)

2024-07-03 Thread LLVM Continuous Integration via cfe-commits

llvm-ci wrote:

LLVM Buildbot has detected a new failure on builder `flang-aarch64-out-of-tree` 
running on `linaro-flang-aarch64-out-of-tree` while building `clang,flang` at 
step 8 "test-build-flang-unified-tree-check-flang".

Full details are available at: 
https://lab.llvm.org/buildbot/#/builders/53/builds/883

Here is the relevant piece of the build log for the reference:
```
Step 8 (test-build-flang-unified-tree-check-flang) failure: test (failure)
 TEST 'Flang :: Lower/mcmodel.f90' FAILED 

Exit Code: 2

Command Output (stderr):
--
RUN: at line 1: 
/home/tcwg-buildbot/worker/flang-aarch64-out-of-tree/build_flang/bin/flang-new 
-fc1 -triple aarch64 -emit-llvm -mcmodel=tiny 
/home/tcwg-buildbot/worker/flang-aarch64-out-of-tree/llvm-project/flang/test/Lower/mcmodel.f90
 -o - | 
/home/tcwg-buildbot/worker/flang-aarch64-out-of-tree/build_llvm/bin/FileCheck 
/home/tcwg-buildbot/worker/flang-aarch64-out-of-tree/llvm-project/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-TINY
+ 
/home/tcwg-buildbot/worker/flang-aarch64-out-of-tree/build_flang/bin/flang-new 
-fc1 -triple aarch64 -emit-llvm -mcmodel=tiny 
/home/tcwg-buildbot/worker/flang-aarch64-out-of-tree/llvm-project/flang/test/Lower/mcmodel.f90
 -o -
+ /home/tcwg-buildbot/worker/flang-aarch64-out-of-tree/build_llvm/bin/FileCheck 
/home/tcwg-buildbot/worker/flang-aarch64-out-of-tree/llvm-project/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-TINY
RUN: at line 2: 
/home/tcwg-buildbot/worker/flang-aarch64-out-of-tree/build_flang/bin/flang-new 
-fc1 -emit-llvm -mcmodel=small 
/home/tcwg-buildbot/worker/flang-aarch64-out-of-tree/llvm-project/flang/test/Lower/mcmodel.f90
 -o - | 
/home/tcwg-buildbot/worker/flang-aarch64-out-of-tree/build_llvm/bin/FileCheck 
/home/tcwg-buildbot/worker/flang-aarch64-out-of-tree/llvm-project/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-SMALL
+ 
/home/tcwg-buildbot/worker/flang-aarch64-out-of-tree/build_flang/bin/flang-new 
-fc1 -emit-llvm -mcmodel=small 
/home/tcwg-buildbot/worker/flang-aarch64-out-of-tree/llvm-project/flang/test/Lower/mcmodel.f90
 -o -
+ /home/tcwg-buildbot/worker/flang-aarch64-out-of-tree/build_llvm/bin/FileCheck 
/home/tcwg-buildbot/worker/flang-aarch64-out-of-tree/llvm-project/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-SMALL
RUN: at line 3: 
/home/tcwg-buildbot/worker/flang-aarch64-out-of-tree/build_flang/bin/flang-new 
-fc1 -triple x86_64-unknown-linux-gnu -emit-llvm -mcmodel=kernel 
/home/tcwg-buildbot/worker/flang-aarch64-out-of-tree/llvm-project/flang/test/Lower/mcmodel.f90
 -o - | 
/home/tcwg-buildbot/worker/flang-aarch64-out-of-tree/build_llvm/bin/FileCheck 
/home/tcwg-buildbot/worker/flang-aarch64-out-of-tree/llvm-project/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-KERNEL
+ 
/home/tcwg-buildbot/worker/flang-aarch64-out-of-tree/build_flang/bin/flang-new 
-fc1 -triple x86_64-unknown-linux-gnu -emit-llvm -mcmodel=kernel 
/home/tcwg-buildbot/worker/flang-aarch64-out-of-tree/llvm-project/flang/test/Lower/mcmodel.f90
 -o -
+ /home/tcwg-buildbot/worker/flang-aarch64-out-of-tree/build_llvm/bin/FileCheck 
/home/tcwg-buildbot/worker/flang-aarch64-out-of-tree/llvm-project/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-KERNEL
error: unable to create target: 'No available targets are compatible with 
triple "x86_64-unknown-linux-gnu"'
FileCheck error: '' is empty.
FileCheck command line:  
/home/tcwg-buildbot/worker/flang-aarch64-out-of-tree/build_llvm/bin/FileCheck 
/home/tcwg-buildbot/worker/flang-aarch64-out-of-tree/llvm-project/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-KERNEL

--




```

https://github.com/llvm/llvm-project/pull/95411
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [flang] [flang] Implement -mcmodel flag (PR #95411)

2024-07-03 Thread LLVM Continuous Integration via cfe-commits

llvm-ci wrote:

LLVM Buildbot has detected a new failure on builder `ppc64le-flang-rhel-clang` 
running on `ppc64le-flang-rhel-test` while building `clang,flang` at step 6 
"test-build-unified-tree-check-flang".

Full details are available at: 
https://lab.llvm.org/buildbot/#/builders/157/builds/1737

Here is the relevant piece of the build log for the reference:
```
Step 6 (test-build-unified-tree-check-flang) failure: test (failure)
 TEST 'Flang :: Lower/mcmodel.f90' FAILED 

Exit Code: 2

Command Output (stderr):
--
RUN: at line 1: 
/home/buildbots/llvm-external-buildbots/workers/ppc64le-flang-rhel-test/ppc64le-flang-rhel-clang-build/build/bin/flang-new
 -fc1 -triple aarch64 -emit-llvm -mcmodel=tiny 
/home/buildbots/llvm-external-buildbots/workers/ppc64le-flang-rhel-test/ppc64le-flang-rhel-clang-build/llvm-project/flang/test/Lower/mcmodel.f90
 -o - | 
/home/buildbots/llvm-external-buildbots/workers/ppc64le-flang-rhel-test/ppc64le-flang-rhel-clang-build/build/bin/FileCheck
 
/home/buildbots/llvm-external-buildbots/workers/ppc64le-flang-rhel-test/ppc64le-flang-rhel-clang-build/llvm-project/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-TINY
+ 
/home/buildbots/llvm-external-buildbots/workers/ppc64le-flang-rhel-test/ppc64le-flang-rhel-clang-build/build/bin/flang-new
 -fc1 -triple aarch64 -emit-llvm -mcmodel=tiny 
/home/buildbots/llvm-external-buildbots/workers/ppc64le-flang-rhel-test/ppc64le-flang-rhel-clang-build/llvm-project/flang/test/Lower/mcmodel.f90
 -o -
+ 
/home/buildbots/llvm-external-buildbots/workers/ppc64le-flang-rhel-test/ppc64le-flang-rhel-clang-build/build/bin/FileCheck
 
/home/buildbots/llvm-external-buildbots/workers/ppc64le-flang-rhel-test/ppc64le-flang-rhel-clang-build/llvm-project/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-TINY
error: unable to create target: 'No available targets are compatible with 
triple "aarch64"'
FileCheck error: '' is empty.
FileCheck command line:  
/home/buildbots/llvm-external-buildbots/workers/ppc64le-flang-rhel-test/ppc64le-flang-rhel-clang-build/build/bin/FileCheck
 
/home/buildbots/llvm-external-buildbots/workers/ppc64le-flang-rhel-test/ppc64le-flang-rhel-clang-build/llvm-project/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-TINY

--




```

https://github.com/llvm/llvm-project/pull/95411
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [flang] [flang] Implement -mcmodel flag (PR #95411)

2024-07-03 Thread LLVM Continuous Integration via cfe-commits

llvm-ci wrote:

LLVM Buildbot has detected a new failure on builder `flang-aarch64-libcxx` 
running on `linaro-flang-aarch64-libcxx` while building `clang,flang` at step 6 
"test-build-unified-tree-check-flang".

Full details are available at: 
https://lab.llvm.org/buildbot/#/builders/89/builds/1377

Here is the relevant piece of the build log for the reference:
```
Step 6 (test-build-unified-tree-check-flang) failure: test (failure)
 TEST 'Flang :: Lower/mcmodel.f90' FAILED 

Exit Code: 2

Command Output (stderr):
--
RUN: at line 1: 
/home/tcwg-buildbot/worker/flang-aarch64-libcxx/build/bin/flang-new -fc1 
-triple aarch64 -emit-llvm -mcmodel=tiny 
/home/tcwg-buildbot/worker/flang-aarch64-libcxx/llvm-project/flang/test/Lower/mcmodel.f90
 -o - | /home/tcwg-buildbot/worker/flang-aarch64-libcxx/build/bin/FileCheck 
/home/tcwg-buildbot/worker/flang-aarch64-libcxx/llvm-project/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-TINY
+ /home/tcwg-buildbot/worker/flang-aarch64-libcxx/build/bin/flang-new -fc1 
-triple aarch64 -emit-llvm -mcmodel=tiny 
/home/tcwg-buildbot/worker/flang-aarch64-libcxx/llvm-project/flang/test/Lower/mcmodel.f90
 -o -
+ /home/tcwg-buildbot/worker/flang-aarch64-libcxx/build/bin/FileCheck 
/home/tcwg-buildbot/worker/flang-aarch64-libcxx/llvm-project/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-TINY
RUN: at line 2: 
/home/tcwg-buildbot/worker/flang-aarch64-libcxx/build/bin/flang-new -fc1 
-emit-llvm -mcmodel=small 
/home/tcwg-buildbot/worker/flang-aarch64-libcxx/llvm-project/flang/test/Lower/mcmodel.f90
 -o - | /home/tcwg-buildbot/worker/flang-aarch64-libcxx/build/bin/FileCheck 
/home/tcwg-buildbot/worker/flang-aarch64-libcxx/llvm-project/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-SMALL
+ /home/tcwg-buildbot/worker/flang-aarch64-libcxx/build/bin/flang-new -fc1 
-emit-llvm -mcmodel=small 
/home/tcwg-buildbot/worker/flang-aarch64-libcxx/llvm-project/flang/test/Lower/mcmodel.f90
 -o -
+ /home/tcwg-buildbot/worker/flang-aarch64-libcxx/build/bin/FileCheck 
/home/tcwg-buildbot/worker/flang-aarch64-libcxx/llvm-project/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-SMALL
RUN: at line 3: 
/home/tcwg-buildbot/worker/flang-aarch64-libcxx/build/bin/flang-new -fc1 
-triple x86_64-unknown-linux-gnu -emit-llvm -mcmodel=kernel 
/home/tcwg-buildbot/worker/flang-aarch64-libcxx/llvm-project/flang/test/Lower/mcmodel.f90
 -o - | /home/tcwg-buildbot/worker/flang-aarch64-libcxx/build/bin/FileCheck 
/home/tcwg-buildbot/worker/flang-aarch64-libcxx/llvm-project/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-KERNEL
+ /home/tcwg-buildbot/worker/flang-aarch64-libcxx/build/bin/flang-new -fc1 
-triple x86_64-unknown-linux-gnu -emit-llvm -mcmodel=kernel 
/home/tcwg-buildbot/worker/flang-aarch64-libcxx/llvm-project/flang/test/Lower/mcmodel.f90
 -o -
+ /home/tcwg-buildbot/worker/flang-aarch64-libcxx/build/bin/FileCheck 
/home/tcwg-buildbot/worker/flang-aarch64-libcxx/llvm-project/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-KERNEL
error: unable to create target: 'No available targets are compatible with 
triple "x86_64-unknown-linux-gnu"'
FileCheck error: '' is empty.
FileCheck command line:  
/home/tcwg-buildbot/worker/flang-aarch64-libcxx/build/bin/FileCheck 
/home/tcwg-buildbot/worker/flang-aarch64-libcxx/llvm-project/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-KERNEL

--




```

https://github.com/llvm/llvm-project/pull/95411
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [flang] [flang] Implement -mcmodel flag (PR #95411)

2024-07-03 Thread LLVM Continuous Integration via cfe-commits

llvm-ci wrote:

LLVM Buildbot has detected a new failure on builder 
`openmp-offload-sles-build-only` running on `rocm-worker-hw-04-sles` while 
building `clang,flang` at step 7 "Add check check-flang".

Full details are available at: 
https://lab.llvm.org/buildbot/#/builders/140/builds/1368

Here is the relevant piece of the build log for the reference:
```
Step 7 (Add check check-flang) failure: test (failure)
 TEST 'Flang :: Lower/mcmodel.f90' FAILED 

Exit Code: 2

Command Output (stderr):
--
RUN: at line 1: 
/home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/flang-new 
-fc1 -triple aarch64 -emit-llvm -mcmodel=tiny 
/home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/flang/test/Lower/mcmodel.f90
 -o - | 
/home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/FileCheck 
/home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-TINY
+ 
/home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/flang-new 
-fc1 -triple aarch64 -emit-llvm -mcmodel=tiny 
/home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/flang/test/Lower/mcmodel.f90
 -o -
+ 
/home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/FileCheck 
/home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-TINY
error: unable to create target: 'No available targets are compatible with 
triple "aarch64"'
FileCheck error: '' is empty.
FileCheck command line:  
/home/botworker/bbot/builds/openmp-offload-sles-build/llvm.build/bin/FileCheck 
/home/botworker/bbot/builds/openmp-offload-sles-build/llvm.src/flang/test/Lower/mcmodel.f90
 -check-prefix=CHECK-TINY

--




```

https://github.com/llvm/llvm-project/pull/95411
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [flang] [flang] Implement -mcmodel flag (PR #95411)

2024-07-03 Thread LLVM Continuous Integration via cfe-commits

llvm-ci wrote:

LLVM Buildbot has detected a new failure on builder 
`libc-x86_64-debian-gcc-fullbuild-dbg` running on 
`libc-x86_64-debian-fullbuild` while building `clang,flang` at step 4 
"annotate".

Full details are available at: 
https://lab.llvm.org/buildbot/#/builders/131/builds/1365

Here is the relevant piece of the build log for the reference:
```
Step 4 (annotate) failure: 'python 
../llvm-zorg/zorg/buildbot/builders/annotated/libc-linux.py ...' (failure)
...
-- lldb project is disabled
-- mlir project is disabled
-- openmp project is disabled
-- polly project is disabled
-- pstl project is disabled
-- flang project is disabled
-- Could NOT find LibEdit (missing: LibEdit_INCLUDE_DIRS LibEdit_LIBRARIES) 
Change Dir: 
/home/llvm-libc-buildbot/buildbot-worker/libc-x86_64-debian-fullbuild/libc-x86_64-debian-gcc-fullbuild-dbg/build/CMakeFiles/CMakeTmp

Run Build Command(s):/usr/bin/ninja cmTC_abf7f && [1/2] Building CXX object 
CMakeFiles/cmTC_abf7f.dir/getErrc.cpp.o
FAILED: CMakeFiles/cmTC_abf7f.dir/getErrc.cpp.o 
/usr/bin/g++   -g -std=c++17 -o CMakeFiles/cmTC_abf7f.dir/getErrc.cpp.o -c 
/home/llvm-libc-buildbot/buildbot-worker/libc-x86_64-debian-fullbuild/libc-x86_64-debian-gcc-fullbuild-dbg/build/CMakeFiles/CMakeTmp/getErrc.cpp
/home/llvm-libc-buildbot/buildbot-worker/libc-x86_64-debian-fullbuild/libc-x86_64-debian-gcc-fullbuild-dbg/build/CMakeFiles/CMakeTmp/getErrc.cpp:15:9:
 fatal error: error writing to /tmp/ccJpSZaj.s: No space left on device
   15 | }
  | ^
compilation terminated.
ninja: build stopped: subcommand failed.


-- Failed to get errc messages
-- LLVM host triple: x86_64-unknown-linux-gnu
-- Native target architecture is X86
-- Threads enabled.
-- Doxygen disabled.
-- Ninja version: 1.11.1
-- Could NOT find OCaml (missing: OCAMLFIND OCAML_VERSION OCAML_STDLIB_PATH) 
-- Could NOT find OCaml (missing: OCAMLFIND OCAML_VERSION OCAML_STDLIB_PATH) 
-- OCaml bindings disabled.
-- LLVM default target triple: x86_64-unknown-linux-gnu
-- Building with -fPIC
-- Targeting AArch64
-- Targeting AMDGPU
-- Targeting ARM
-- Targeting AVR
-- Targeting BPF
-- Targeting Hexagon
-- Targeting Lanai
-- Targeting LoongArch
-- Targeting Mips
-- Targeting MSP430
-- Targeting NVPTX
-- Targeting PowerPC
-- Targeting RISCV
-- Targeting Sparc
-- Targeting SystemZ
-- Targeting VE
-- Targeting WebAssembly
-- Targeting X86
-- Targeting XCore

```

https://github.com/llvm/llvm-project/pull/95411
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [flang] [flang] Implement -mcmodel flag (PR #95411)

2024-07-03 Thread Mats Petersson via cfe-commits

https://github.com/Leporacanthicus closed 
https://github.com/llvm/llvm-project/pull/95411
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [flang] [flang] Implement -mcmodel flag (PR #95411)

2024-07-02 Thread Thirumalai Shaktivel via cfe-commits

Thirumalai-Shaktivel wrote:

Yes, I tested it. It works fine. 

Thank you!

https://github.com/llvm/llvm-project/pull/95411
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [flang] [flang] Implement -mcmodel flag (PR #95411)

2024-07-02 Thread Mats Petersson via cfe-commits

https://github.com/Leporacanthicus edited 
https://github.com/llvm/llvm-project/pull/95411
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [flang] [flang] Implement -mcmodel flag (PR #95411)

2024-07-02 Thread Tom Eccles via cfe-commits

https://github.com/tblah approved this pull request.

LGTM. Thanks for picking this up Mats.

Ideally, wait for @Thirumalai-Shaktivel to have another look before merging.

https://github.com/llvm/llvm-project/pull/95411
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [flang] [flang] Implement -mcmodel flag (PR #95411)

2024-07-02 Thread Mats Petersson via cfe-commits

Leporacanthicus wrote:

> Yes, thank you!

This is now part of this PR. 

https://github.com/llvm/llvm-project/pull/95411
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [flang] [flang] Implement -mcmodel flag (PR #95411)

2024-07-02 Thread Mats Petersson via cfe-commits


@@ -21,4 +22,14 @@ CodeGenOptions::CodeGenOptions() {
 #include "flang/Frontend/CodeGenOptions.def"
 }
 
+std::optional getCodeModel(llvm::StringRef string) {
+  return llvm::StringSwitch>(string)
+  .Case("tiny", llvm::CodeModel::Model::Tiny)
+  .Case("small", llvm::CodeModel::Model::Small)
+  .Case("kernel", llvm::CodeModel::Model::Kernel)
+  .Case("medium", llvm::CodeModel::Model::Medium)
+  .Case("large", llvm::CodeModel::Model::Large)
+  .Default(std::nullopt);

Leporacanthicus wrote:

Yes, as do we. Just not in this piece of code, it happens when we're parsing 
arguments. We call this function twice, only checking in the first place. 
Approximately line 400 of flang/lib/Frontend/CompilerInvocation.cpp 
There are tests in flang/test/Driver/mcmodel.f90 for generating an error.

https://github.com/llvm/llvm-project/pull/95411
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [flang] [flang] Implement -mcmodel flag (PR #95411)

2024-07-02 Thread Tom Eccles via cfe-commits


@@ -21,4 +22,14 @@ CodeGenOptions::CodeGenOptions() {
 #include "flang/Frontend/CodeGenOptions.def"
 }
 
+std::optional getCodeModel(llvm::StringRef string) {
+  return llvm::StringSwitch>(string)
+  .Case("tiny", llvm::CodeModel::Model::Tiny)
+  .Case("small", llvm::CodeModel::Model::Small)
+  .Case("kernel", llvm::CodeModel::Model::Kernel)
+  .Case("medium", llvm::CodeModel::Model::Medium)
+  .Case("large", llvm::CodeModel::Model::Large)
+  .Default(std::nullopt);

tblah wrote:

Does clang warn or error for an invalid code model?

https://github.com/llvm/llvm-project/pull/95411
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [flang] [flang] Implement -mcmodel flag (PR #95411)

2024-07-01 Thread Mats Petersson via cfe-commits


@@ -2823,3 +2823,84 @@ void tools::addOffloadCompressArgs(const 
llvm::opt::ArgList &TCArgs,
 CmdArgs.push_back(
 TCArgs.MakeArgString(Twine("-compression-level=") + Arg->getValue()));
 }
+
+void tools::addMCModel(const Driver &D, const llvm::opt::ArgList &Args,

Leporacanthicus wrote:

Yes, it is a direct copy, aside from not using a "cached" TripleStr and instead 
calling getTriple() on the Triple. [I just compared the two versions].

https://github.com/llvm/llvm-project/pull/95411
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [flang] [flang] Implement -mcmodel flag (PR #95411)

2024-07-01 Thread Mats Petersson via cfe-commits

https://github.com/Leporacanthicus edited 
https://github.com/llvm/llvm-project/pull/95411
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [flang] [flang] Implement -mcmodel flag (PR #95411)

2024-07-01 Thread Mats Petersson via cfe-commits

https://github.com/Leporacanthicus updated 
https://github.com/llvm/llvm-project/pull/95411

>From 0ef4b61d0429517b92f7b6de7fa52c516f3a1468 Mon Sep 17 00:00:00 2001
From: David Truby 
Date: Thu, 13 Jun 2024 14:01:36 +
Subject: [PATCH 1/5] [flang] Implement -mcmodel flag

This patch implements the -mcmodel flag from clang, allowing the Code Model to
be changed for the LLVM module. The same set of mcmodel flags are accepted as
in clang and the same Code Model attributes are added to the LLVM module for
those flags.
---
 clang/include/clang/Driver/Options.td |  2 +-
 clang/lib/Driver/ToolChains/Clang.cpp | 76 +
 clang/lib/Driver/ToolChains/CommonArgs.cpp| 81 +++
 clang/lib/Driver/ToolChains/CommonArgs.h  |  4 +
 clang/lib/Driver/ToolChains/Flang.cpp |  5 ++
 .../include/flang/Frontend/CodeGenOptions.def |  1 +
 flang/lib/Frontend/CompilerInvocation.cpp | 21 +
 flang/lib/Frontend/FrontendActions.cpp|  3 +
 flang/test/Driver/mcmodel.f90 | 44 ++
 flang/test/Lower/mcmodel.f90  | 16 
 10 files changed, 177 insertions(+), 76 deletions(-)
 create mode 100644 flang/test/Driver/mcmodel.f90
 create mode 100644 flang/test/Lower/mcmodel.f90

diff --git a/clang/include/clang/Driver/Options.td 
b/clang/include/clang/Driver/Options.td
index 9f7904dd94b94..4087d3b95cc39 100644
--- a/clang/include/clang/Driver/Options.td
+++ b/clang/include/clang/Driver/Options.td
@@ -4600,7 +4600,7 @@ def inline_asm_EQ : Joined<["-"], "inline-asm=">, 
Group,
   NormalizedValuesScope<"CodeGenOptions">, NormalizedValues<["IAD_ATT", 
"IAD_Intel"]>,
   MarshallingInfoEnum, "IAD_ATT">;
 def mcmodel_EQ : Joined<["-"], "mcmodel=">, Group,
-  Visibility<[ClangOption, CC1Option]>,
+  Visibility<[ClangOption, CC1Option, FlangOption, FC1Option]>,
   MarshallingInfoString, [{"default"}]>;
 def mlarge_data_threshold_EQ : Joined<["-"], "mlarge-data-threshold=">, 
Group,
   Flags<[TargetSpecific]>, Visibility<[ClangOption, CC1Option]>,
diff --git a/clang/lib/Driver/ToolChains/Clang.cpp 
b/clang/lib/Driver/ToolChains/Clang.cpp
index 1f8591537b6c8..0447581128cd1 100644
--- a/clang/lib/Driver/ToolChains/Clang.cpp
+++ b/clang/lib/Driver/ToolChains/Clang.cpp
@@ -5908,81 +5908,7 @@ void Clang::ConstructJob(Compilation &C, const JobAction 
&JA,
 
   TC.addClangTargetOptions(Args, CmdArgs, JA.getOffloadingDeviceKind());
 
-  if (Arg *A = Args.getLastArg(options::OPT_mcmodel_EQ)) {
-StringRef CM = A->getValue();
-bool Ok = false;
-if (Triple.isOSAIX() && CM == "medium")
-  CM = "large";
-if (Triple.isAArch64(64)) {
-  Ok = CM == "tiny" || CM == "small" || CM == "large";
-  if (CM == "large" && !Triple.isOSBinFormatMachO() &&
-  RelocationModel != llvm::Reloc::Static)
-D.Diag(diag::err_drv_argument_only_allowed_with)
-<< A->getAsString(Args) << "-fno-pic";
-} else if (Triple.isLoongArch()) {
-  if (CM == "extreme" &&
-  Args.hasFlagNoClaim(options::OPT_fplt, options::OPT_fno_plt, false))
-D.Diag(diag::err_drv_argument_not_allowed_with)
-<< A->getAsString(Args) << "-fplt";
-  Ok = CM == "normal" || CM == "medium" || CM == "extreme";
-  // Convert to LLVM recognizable names.
-  if (Ok)
-CM = llvm::StringSwitch(CM)
- .Case("normal", "small")
- .Case("extreme", "large")
- .Default(CM);
-} else if (Triple.isPPC64() || Triple.isOSAIX()) {
-  Ok = CM == "small" || CM == "medium" || CM == "large";
-} else if (Triple.isRISCV()) {
-  if (CM == "medlow")
-CM = "small";
-  else if (CM == "medany")
-CM = "medium";
-  Ok = CM == "small" || CM == "medium";
-} else if (Triple.getArch() == llvm::Triple::x86_64) {
-  Ok = llvm::is_contained({"small", "kernel", "medium", "large", "tiny"},
-  CM);
-} else if (Triple.isNVPTX() || Triple.isAMDGPU() || Triple.isSPIRV()) {
-  // NVPTX/AMDGPU/SPIRV does not care about the code model and will accept
-  // whatever works for the host.
-  Ok = true;
-} else if (Triple.isSPARC64()) {
-  if (CM == "medlow")
-CM = "small";
-  else if (CM == "medmid")
-CM = "medium";
-  else if (CM == "medany")
-CM = "large";
-  Ok = CM == "small" || CM == "medium" || CM == "large";
-}
-if (Ok) {
-  CmdArgs.push_back(Args.MakeArgString("-mcmodel=" + CM));
-} else {
-  D.Diag(diag::err_drv_unsupported_option_argument_for_target)
-  << A->getSpelling() << CM << TripleStr;
-}
-  }
-
-  if (Triple.getArch() == llvm::Triple::x86_64) {
-bool IsMediumCM = false;
-bool IsLargeCM = false;
-if (Arg *A = Args.getLastArg(options::OPT_mcmodel_EQ)) {
-  IsMediumCM = StringRef(A->getValue()) == "medium";
-  IsLargeCM = StringRef(A->getValue()) == "large";
-}
-if (Arg *A = Args.getLastArg(options::OPT_ml

[clang] [flang] [flang] Implement -mcmodel flag (PR #95411)

2024-07-01 Thread via cfe-commits

github-actions[bot] wrote:




:warning: C/C++ code formatter, clang-format found issues in your code. 
:warning:



You can test this locally with the following command:


``bash
git-clang-format --diff 1d4523505e54415a270d7b13b6e203fc25585c5b 
eaad187a5e1372cc34f79f36ca5d28016a94b221 -- 
clang/lib/Driver/ToolChains/Clang.cpp 
clang/lib/Driver/ToolChains/CommonArgs.cpp 
clang/lib/Driver/ToolChains/CommonArgs.h clang/lib/Driver/ToolChains/Flang.cpp 
flang/include/flang/Frontend/CodeGenOptions.h 
flang/lib/Frontend/CodeGenOptions.cpp flang/lib/Frontend/CompilerInstance.cpp 
flang/lib/Frontend/CompilerInvocation.cpp flang/lib/Frontend/FrontendActions.cpp
``





View the diff from clang-format here.


``diff
diff --git a/flang/lib/Frontend/CompilerInvocation.cpp 
b/flang/lib/Frontend/CompilerInvocation.cpp
index 2fd2ac3244..eddfa5029d 100644
--- a/flang/lib/Frontend/CompilerInvocation.cpp
+++ b/flang/lib/Frontend/CompilerInvocation.cpp
@@ -395,15 +395,16 @@ static void 
parseCodeGenArgs(Fortran::frontend::CodeGenOptions &opts,
   << a->getAsString(args) << modelName;
   }
 
-  if (const llvm::opt::Arg *arg = 
args.getLastArg(clang::driver::options::OPT_mlarge_data_threshold_EQ)) {
+  if (const llvm::opt::Arg *arg = args.getLastArg(
+  clang::driver::options::OPT_mlarge_data_threshold_EQ)) {
 uint64_t LDT;
 if (llvm::StringRef(arg->getValue()).getAsInteger(/*Radix=*/10, LDT)) {
   diags.Report(clang::diag::err_drv_invalid_value)
   << arg->getSpelling() << arg->getValue();
-}  
+}
 opts.LargeDataThreshold = LDT;
   }
-  
+
   // This option is compatible with -f[no-]underscoring in gfortran.
   if (args.hasFlag(clang::driver::options::OPT_fno_underscoring,
clang::driver::options::OPT_funderscoring, false)) {

``




https://github.com/llvm/llvm-project/pull/95411
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [flang] [flang] Implement -mcmodel flag (PR #95411)

2024-07-01 Thread Mats Petersson via cfe-commits

https://github.com/Leporacanthicus updated 
https://github.com/llvm/llvm-project/pull/95411

>From 0ef4b61d0429517b92f7b6de7fa52c516f3a1468 Mon Sep 17 00:00:00 2001
From: David Truby 
Date: Thu, 13 Jun 2024 14:01:36 +
Subject: [PATCH 1/4] [flang] Implement -mcmodel flag

This patch implements the -mcmodel flag from clang, allowing the Code Model to
be changed for the LLVM module. The same set of mcmodel flags are accepted as
in clang and the same Code Model attributes are added to the LLVM module for
those flags.
---
 clang/include/clang/Driver/Options.td |  2 +-
 clang/lib/Driver/ToolChains/Clang.cpp | 76 +
 clang/lib/Driver/ToolChains/CommonArgs.cpp| 81 +++
 clang/lib/Driver/ToolChains/CommonArgs.h  |  4 +
 clang/lib/Driver/ToolChains/Flang.cpp |  5 ++
 .../include/flang/Frontend/CodeGenOptions.def |  1 +
 flang/lib/Frontend/CompilerInvocation.cpp | 21 +
 flang/lib/Frontend/FrontendActions.cpp|  3 +
 flang/test/Driver/mcmodel.f90 | 44 ++
 flang/test/Lower/mcmodel.f90  | 16 
 10 files changed, 177 insertions(+), 76 deletions(-)
 create mode 100644 flang/test/Driver/mcmodel.f90
 create mode 100644 flang/test/Lower/mcmodel.f90

diff --git a/clang/include/clang/Driver/Options.td 
b/clang/include/clang/Driver/Options.td
index 9f7904dd94b94..4087d3b95cc39 100644
--- a/clang/include/clang/Driver/Options.td
+++ b/clang/include/clang/Driver/Options.td
@@ -4600,7 +4600,7 @@ def inline_asm_EQ : Joined<["-"], "inline-asm=">, 
Group,
   NormalizedValuesScope<"CodeGenOptions">, NormalizedValues<["IAD_ATT", 
"IAD_Intel"]>,
   MarshallingInfoEnum, "IAD_ATT">;
 def mcmodel_EQ : Joined<["-"], "mcmodel=">, Group,
-  Visibility<[ClangOption, CC1Option]>,
+  Visibility<[ClangOption, CC1Option, FlangOption, FC1Option]>,
   MarshallingInfoString, [{"default"}]>;
 def mlarge_data_threshold_EQ : Joined<["-"], "mlarge-data-threshold=">, 
Group,
   Flags<[TargetSpecific]>, Visibility<[ClangOption, CC1Option]>,
diff --git a/clang/lib/Driver/ToolChains/Clang.cpp 
b/clang/lib/Driver/ToolChains/Clang.cpp
index 1f8591537b6c8..0447581128cd1 100644
--- a/clang/lib/Driver/ToolChains/Clang.cpp
+++ b/clang/lib/Driver/ToolChains/Clang.cpp
@@ -5908,81 +5908,7 @@ void Clang::ConstructJob(Compilation &C, const JobAction 
&JA,
 
   TC.addClangTargetOptions(Args, CmdArgs, JA.getOffloadingDeviceKind());
 
-  if (Arg *A = Args.getLastArg(options::OPT_mcmodel_EQ)) {
-StringRef CM = A->getValue();
-bool Ok = false;
-if (Triple.isOSAIX() && CM == "medium")
-  CM = "large";
-if (Triple.isAArch64(64)) {
-  Ok = CM == "tiny" || CM == "small" || CM == "large";
-  if (CM == "large" && !Triple.isOSBinFormatMachO() &&
-  RelocationModel != llvm::Reloc::Static)
-D.Diag(diag::err_drv_argument_only_allowed_with)
-<< A->getAsString(Args) << "-fno-pic";
-} else if (Triple.isLoongArch()) {
-  if (CM == "extreme" &&
-  Args.hasFlagNoClaim(options::OPT_fplt, options::OPT_fno_plt, false))
-D.Diag(diag::err_drv_argument_not_allowed_with)
-<< A->getAsString(Args) << "-fplt";
-  Ok = CM == "normal" || CM == "medium" || CM == "extreme";
-  // Convert to LLVM recognizable names.
-  if (Ok)
-CM = llvm::StringSwitch(CM)
- .Case("normal", "small")
- .Case("extreme", "large")
- .Default(CM);
-} else if (Triple.isPPC64() || Triple.isOSAIX()) {
-  Ok = CM == "small" || CM == "medium" || CM == "large";
-} else if (Triple.isRISCV()) {
-  if (CM == "medlow")
-CM = "small";
-  else if (CM == "medany")
-CM = "medium";
-  Ok = CM == "small" || CM == "medium";
-} else if (Triple.getArch() == llvm::Triple::x86_64) {
-  Ok = llvm::is_contained({"small", "kernel", "medium", "large", "tiny"},
-  CM);
-} else if (Triple.isNVPTX() || Triple.isAMDGPU() || Triple.isSPIRV()) {
-  // NVPTX/AMDGPU/SPIRV does not care about the code model and will accept
-  // whatever works for the host.
-  Ok = true;
-} else if (Triple.isSPARC64()) {
-  if (CM == "medlow")
-CM = "small";
-  else if (CM == "medmid")
-CM = "medium";
-  else if (CM == "medany")
-CM = "large";
-  Ok = CM == "small" || CM == "medium" || CM == "large";
-}
-if (Ok) {
-  CmdArgs.push_back(Args.MakeArgString("-mcmodel=" + CM));
-} else {
-  D.Diag(diag::err_drv_unsupported_option_argument_for_target)
-  << A->getSpelling() << CM << TripleStr;
-}
-  }
-
-  if (Triple.getArch() == llvm::Triple::x86_64) {
-bool IsMediumCM = false;
-bool IsLargeCM = false;
-if (Arg *A = Args.getLastArg(options::OPT_mcmodel_EQ)) {
-  IsMediumCM = StringRef(A->getValue()) == "medium";
-  IsLargeCM = StringRef(A->getValue()) == "large";
-}
-if (Arg *A = Args.getLastArg(options::OPT_ml

[clang] [flang] [flang] Implement -mcmodel flag (PR #95411)

2024-07-01 Thread Mats Petersson via cfe-commits


@@ -39,6 +39,7 @@ ENUM_CODEGENOPT(RelocationModel, llvm::Reloc::Model, 3, 
llvm::Reloc::PIC_) ///<
 ENUM_CODEGENOPT(DebugInfo,  llvm::codegenoptions::DebugInfoKind, 4,  
llvm::codegenoptions::NoDebugInfo) ///< Level of debug info to generate
 ENUM_CODEGENOPT(VecLib, llvm::driver::VectorLibrary, 3, 
llvm::driver::VectorLibrary::NoLibrary) ///< Vector functions library to use
 ENUM_CODEGENOPT(FramePointer, llvm::FramePointerKind, 2, 
llvm::FramePointerKind::None) ///< Enable the usage of frame pointers
+ENUM_CODEGENOPT(CodeModel, llvm::CodeModel::Model, 5, 
llvm::CodeModel::Model::Small)

Leporacanthicus wrote:

This code is no longer present. 

https://github.com/llvm/llvm-project/pull/95411
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [flang] [flang] Implement -mcmodel flag (PR #95411)

2024-07-01 Thread Mats Petersson via cfe-commits


@@ -39,6 +39,7 @@ ENUM_CODEGENOPT(RelocationModel, llvm::Reloc::Model, 3, 
llvm::Reloc::PIC_) ///<
 ENUM_CODEGENOPT(DebugInfo,  llvm::codegenoptions::DebugInfoKind, 4,  
llvm::codegenoptions::NoDebugInfo) ///< Level of debug info to generate
 ENUM_CODEGENOPT(VecLib, llvm::driver::VectorLibrary, 3, 
llvm::driver::VectorLibrary::NoLibrary) ///< Vector functions library to use
 ENUM_CODEGENOPT(FramePointer, llvm::FramePointerKind, 2, 
llvm::FramePointerKind::None) ///< Enable the usage of frame pointers
+ENUM_CODEGENOPT(CodeModel, llvm::CodeModel::Model, 5, 
llvm::CodeModel::Model::Small)

Leporacanthicus wrote:

Rightly or wrongly, I've changed it to copy the way that Clang does it, and 
store the string in CodeGenOptions, then parse it (twice, but sharing the code 
to do so, rather than implementing the same-ish code twice in Clang). 

https://github.com/llvm/llvm-project/pull/95411
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [flang] [flang] Implement -mcmodel flag (PR #95411)

2024-06-28 Thread Mats Petersson via cfe-commits

https://github.com/Leporacanthicus updated 
https://github.com/llvm/llvm-project/pull/95411

>From 0ef4b61d0429517b92f7b6de7fa52c516f3a1468 Mon Sep 17 00:00:00 2001
From: David Truby 
Date: Thu, 13 Jun 2024 14:01:36 +
Subject: [PATCH 1/3] [flang] Implement -mcmodel flag

This patch implements the -mcmodel flag from clang, allowing the Code Model to
be changed for the LLVM module. The same set of mcmodel flags are accepted as
in clang and the same Code Model attributes are added to the LLVM module for
those flags.
---
 clang/include/clang/Driver/Options.td |  2 +-
 clang/lib/Driver/ToolChains/Clang.cpp | 76 +
 clang/lib/Driver/ToolChains/CommonArgs.cpp| 81 +++
 clang/lib/Driver/ToolChains/CommonArgs.h  |  4 +
 clang/lib/Driver/ToolChains/Flang.cpp |  5 ++
 .../include/flang/Frontend/CodeGenOptions.def |  1 +
 flang/lib/Frontend/CompilerInvocation.cpp | 21 +
 flang/lib/Frontend/FrontendActions.cpp|  3 +
 flang/test/Driver/mcmodel.f90 | 44 ++
 flang/test/Lower/mcmodel.f90  | 16 
 10 files changed, 177 insertions(+), 76 deletions(-)
 create mode 100644 flang/test/Driver/mcmodel.f90
 create mode 100644 flang/test/Lower/mcmodel.f90

diff --git a/clang/include/clang/Driver/Options.td 
b/clang/include/clang/Driver/Options.td
index 9f7904dd94b94..4087d3b95cc39 100644
--- a/clang/include/clang/Driver/Options.td
+++ b/clang/include/clang/Driver/Options.td
@@ -4600,7 +4600,7 @@ def inline_asm_EQ : Joined<["-"], "inline-asm=">, 
Group,
   NormalizedValuesScope<"CodeGenOptions">, NormalizedValues<["IAD_ATT", 
"IAD_Intel"]>,
   MarshallingInfoEnum, "IAD_ATT">;
 def mcmodel_EQ : Joined<["-"], "mcmodel=">, Group,
-  Visibility<[ClangOption, CC1Option]>,
+  Visibility<[ClangOption, CC1Option, FlangOption, FC1Option]>,
   MarshallingInfoString, [{"default"}]>;
 def mlarge_data_threshold_EQ : Joined<["-"], "mlarge-data-threshold=">, 
Group,
   Flags<[TargetSpecific]>, Visibility<[ClangOption, CC1Option]>,
diff --git a/clang/lib/Driver/ToolChains/Clang.cpp 
b/clang/lib/Driver/ToolChains/Clang.cpp
index 1f8591537b6c8..0447581128cd1 100644
--- a/clang/lib/Driver/ToolChains/Clang.cpp
+++ b/clang/lib/Driver/ToolChains/Clang.cpp
@@ -5908,81 +5908,7 @@ void Clang::ConstructJob(Compilation &C, const JobAction 
&JA,
 
   TC.addClangTargetOptions(Args, CmdArgs, JA.getOffloadingDeviceKind());
 
-  if (Arg *A = Args.getLastArg(options::OPT_mcmodel_EQ)) {
-StringRef CM = A->getValue();
-bool Ok = false;
-if (Triple.isOSAIX() && CM == "medium")
-  CM = "large";
-if (Triple.isAArch64(64)) {
-  Ok = CM == "tiny" || CM == "small" || CM == "large";
-  if (CM == "large" && !Triple.isOSBinFormatMachO() &&
-  RelocationModel != llvm::Reloc::Static)
-D.Diag(diag::err_drv_argument_only_allowed_with)
-<< A->getAsString(Args) << "-fno-pic";
-} else if (Triple.isLoongArch()) {
-  if (CM == "extreme" &&
-  Args.hasFlagNoClaim(options::OPT_fplt, options::OPT_fno_plt, false))
-D.Diag(diag::err_drv_argument_not_allowed_with)
-<< A->getAsString(Args) << "-fplt";
-  Ok = CM == "normal" || CM == "medium" || CM == "extreme";
-  // Convert to LLVM recognizable names.
-  if (Ok)
-CM = llvm::StringSwitch(CM)
- .Case("normal", "small")
- .Case("extreme", "large")
- .Default(CM);
-} else if (Triple.isPPC64() || Triple.isOSAIX()) {
-  Ok = CM == "small" || CM == "medium" || CM == "large";
-} else if (Triple.isRISCV()) {
-  if (CM == "medlow")
-CM = "small";
-  else if (CM == "medany")
-CM = "medium";
-  Ok = CM == "small" || CM == "medium";
-} else if (Triple.getArch() == llvm::Triple::x86_64) {
-  Ok = llvm::is_contained({"small", "kernel", "medium", "large", "tiny"},
-  CM);
-} else if (Triple.isNVPTX() || Triple.isAMDGPU() || Triple.isSPIRV()) {
-  // NVPTX/AMDGPU/SPIRV does not care about the code model and will accept
-  // whatever works for the host.
-  Ok = true;
-} else if (Triple.isSPARC64()) {
-  if (CM == "medlow")
-CM = "small";
-  else if (CM == "medmid")
-CM = "medium";
-  else if (CM == "medany")
-CM = "large";
-  Ok = CM == "small" || CM == "medium" || CM == "large";
-}
-if (Ok) {
-  CmdArgs.push_back(Args.MakeArgString("-mcmodel=" + CM));
-} else {
-  D.Diag(diag::err_drv_unsupported_option_argument_for_target)
-  << A->getSpelling() << CM << TripleStr;
-}
-  }
-
-  if (Triple.getArch() == llvm::Triple::x86_64) {
-bool IsMediumCM = false;
-bool IsLargeCM = false;
-if (Arg *A = Args.getLastArg(options::OPT_mcmodel_EQ)) {
-  IsMediumCM = StringRef(A->getValue()) == "medium";
-  IsLargeCM = StringRef(A->getValue()) == "large";
-}
-if (Arg *A = Args.getLastArg(options::OPT_ml

[clang] [flang] [flang] Implement -mcmodel flag (PR #95411)

2024-06-19 Thread Thirumalai Shaktivel via cfe-commits

Thirumalai-Shaktivel wrote:

Yes, thank you!

https://github.com/llvm/llvm-project/pull/95411
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [flang] [flang] Implement -mcmodel flag (PR #95411)

2024-06-19 Thread David Truby via cfe-commits

DavidTruby wrote:

It looks like `-mcmodel=medium` implies another flag on x86-64 that I haven't 
implemented. I will post another patch implementing `-mlarge-data-threshold` 
and endeavour to merge that before this patch so that this works on x86-64.

https://github.com/llvm/llvm-project/pull/95411
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [flang] [flang] Implement -mcmodel flag (PR #95411)

2024-06-19 Thread Thirumalai Shaktivel via cfe-commits

Thirumalai-Shaktivel wrote:

This seems to introduce a `-mcmodel` flag, thanks for that.
But, when I do `flang-new -mcmodel=medium x.f90`, I get another unknown 
argument issue.
```console
$ flang-new -mcmodel=medium x.f90
error: unknown argument: '-mlarge-data-threshold=65536'
```

What might be issue?

https://github.com/llvm/llvm-project/pull/95411
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [flang] [flang] Implement -mcmodel flag (PR #95411)

2024-06-14 Thread Tom Eccles via cfe-commits


@@ -39,6 +39,7 @@ ENUM_CODEGENOPT(RelocationModel, llvm::Reloc::Model, 3, 
llvm::Reloc::PIC_) ///<
 ENUM_CODEGENOPT(DebugInfo,  llvm::codegenoptions::DebugInfoKind, 4,  
llvm::codegenoptions::NoDebugInfo) ///< Level of debug info to generate
 ENUM_CODEGENOPT(VecLib, llvm::driver::VectorLibrary, 3, 
llvm::driver::VectorLibrary::NoLibrary) ///< Vector functions library to use
 ENUM_CODEGENOPT(FramePointer, llvm::FramePointerKind, 2, 
llvm::FramePointerKind::None) ///< Enable the usage of frame pointers
+ENUM_CODEGENOPT(CodeModel, llvm::CodeModel::Model, 5, 
llvm::CodeModel::Model::Small)

tblah wrote:

I would add it as an `optional` to `CodeGenOptions` in `CodeGenOptions.h`

https://github.com/llvm/llvm-project/pull/95411
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [flang] [flang] Implement -mcmodel flag (PR #95411)

2024-06-14 Thread David Truby via cfe-commits


@@ -39,6 +39,7 @@ ENUM_CODEGENOPT(RelocationModel, llvm::Reloc::Model, 3, 
llvm::Reloc::PIC_) ///<
 ENUM_CODEGENOPT(DebugInfo,  llvm::codegenoptions::DebugInfoKind, 4,  
llvm::codegenoptions::NoDebugInfo) ///< Level of debug info to generate
 ENUM_CODEGENOPT(VecLib, llvm::driver::VectorLibrary, 3, 
llvm::driver::VectorLibrary::NoLibrary) ///< Vector functions library to use
 ENUM_CODEGENOPT(FramePointer, llvm::FramePointerKind, 2, 
llvm::FramePointerKind::None) ///< Enable the usage of frame pointers
+ENUM_CODEGENOPT(CodeModel, llvm::CodeModel::Model, 5, 
llvm::CodeModel::Model::Small)

DavidTruby wrote:

On a second look I think you're right. I'm not sure how to represent that in 
this CodeGenOptions.def file though, or if it isn't possible and I need to do 
this differently. Perhaps @banach-space can suggest something?

https://github.com/llvm/llvm-project/pull/95411
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [flang] [flang] Implement -mcmodel flag (PR #95411)

2024-06-14 Thread David Truby via cfe-commits


@@ -39,6 +39,7 @@ ENUM_CODEGENOPT(RelocationModel, llvm::Reloc::Model, 3, 
llvm::Reloc::PIC_) ///<
 ENUM_CODEGENOPT(DebugInfo,  llvm::codegenoptions::DebugInfoKind, 4,  
llvm::codegenoptions::NoDebugInfo) ///< Level of debug info to generate
 ENUM_CODEGENOPT(VecLib, llvm::driver::VectorLibrary, 3, 
llvm::driver::VectorLibrary::NoLibrary) ///< Vector functions library to use
 ENUM_CODEGENOPT(FramePointer, llvm::FramePointerKind, 2, 
llvm::FramePointerKind::None) ///< Enable the usage of frame pointers
+ENUM_CODEGENOPT(CodeModel, llvm::CodeModel::Model, 5, 
llvm::CodeModel::Model::Small)

DavidTruby wrote:

Ah, it's bits, not the number of values My mistake 😄

https://github.com/llvm/llvm-project/pull/95411
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [flang] [flang] Implement -mcmodel flag (PR #95411)

2024-06-14 Thread Tom Eccles via cfe-commits


@@ -39,6 +39,7 @@ ENUM_CODEGENOPT(RelocationModel, llvm::Reloc::Model, 3, 
llvm::Reloc::PIC_) ///<
 ENUM_CODEGENOPT(DebugInfo,  llvm::codegenoptions::DebugInfoKind, 4,  
llvm::codegenoptions::NoDebugInfo) ///< Level of debug info to generate
 ENUM_CODEGENOPT(VecLib, llvm::driver::VectorLibrary, 3, 
llvm::driver::VectorLibrary::NoLibrary) ///< Vector functions library to use
 ENUM_CODEGENOPT(FramePointer, llvm::FramePointerKind, 2, 
llvm::FramePointerKind::None) ///< Enable the usage of frame pointers
+ENUM_CODEGENOPT(CodeModel, llvm::CodeModel::Model, 5, 
llvm::CodeModel::Model::Small)

tblah wrote:

ultra-nit: why did you use 5 bits here? 3 should be enough

https://github.com/llvm/llvm-project/pull/95411
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [flang] [flang] Implement -mcmodel flag (PR #95411)

2024-06-14 Thread Tom Eccles via cfe-commits


@@ -39,6 +39,7 @@ ENUM_CODEGENOPT(RelocationModel, llvm::Reloc::Model, 3, 
llvm::Reloc::PIC_) ///<
 ENUM_CODEGENOPT(DebugInfo,  llvm::codegenoptions::DebugInfoKind, 4,  
llvm::codegenoptions::NoDebugInfo) ///< Level of debug info to generate
 ENUM_CODEGENOPT(VecLib, llvm::driver::VectorLibrary, 3, 
llvm::driver::VectorLibrary::NoLibrary) ///< Vector functions library to use
 ENUM_CODEGENOPT(FramePointer, llvm::FramePointerKind, 2, 
llvm::FramePointerKind::None) ///< Enable the usage of frame pointers
+ENUM_CODEGENOPT(CodeModel, llvm::CodeModel::Model, 5, 
llvm::CodeModel::Model::Small)

tblah wrote:

What was your reasoning for defaulting to `llvm::CodeModel::Model::Small` here? 
So far as I can tell, clang avoids setting it when the option is not specified 
explicitly: 
https://github.com/llvm/llvm-project/blob/44df1167f88cabbb4cfde816f279337379ea30b3/clang/lib/CodeGen/CodeGenModule.cpp#L1304

In LLVM, the code model logic seems to get overridden in each implementation of 
LLVMTargetMachine. The first one I looked at does default to 
llvm::CodeModel::Model::Small, but I don't know whether that will always be 
true for every target.

I think it would be safer to store this as a std::optional instead of a 
bitfield.

https://github.com/llvm/llvm-project/pull/95411
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [flang] [flang] Implement -mcmodel flag (PR #95411)

2024-06-13 Thread Andrzej WarzyƄski via cfe-commits


@@ -0,0 +1,16 @@
+! RUN: %flang_fc1 -triple aarch64 -emit-llvm -mcmodel=tiny %s -o - | FileCheck 
%s -check-prefix=CHECK-TINY

banach-space wrote:

[nit] IMHO, using `CHECK` for prefixes in a test with multiple prefixes is just 
noise. Why not drop `CHECK`?

https://github.com/llvm/llvm-project/pull/95411
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [flang] [flang] Implement -mcmodel flag (PR #95411)

2024-06-13 Thread Andrzej WarzyƄski via cfe-commits

https://github.com/banach-space approved this pull request.

The high-level stuff makes sense to me, thanks! I'm not familiar with 
`-mcmodel`, so can't tell for sure whether the tests are correct 😅  Ideally one 
more person would take a look - @tblah or @pawosm-arm ?

https://github.com/llvm/llvm-project/pull/95411
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [flang] [flang] Implement -mcmodel flag (PR #95411)

2024-06-13 Thread Andrzej WarzyƄski via cfe-commits

https://github.com/banach-space edited 
https://github.com/llvm/llvm-project/pull/95411
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [flang] [flang] Implement -mcmodel flag (PR #95411)

2024-06-13 Thread Andrzej WarzyƄski via cfe-commits


@@ -2823,3 +2823,84 @@ void tools::addOffloadCompressArgs(const 
llvm::opt::ArgList &TCArgs,
 CmdArgs.push_back(
 TCArgs.MakeArgString(Twine("-compression-level=") + Arg->getValue()));
 }
+
+void tools::addMCModel(const Driver &D, const llvm::opt::ArgList &Args,

banach-space wrote:

Is this taken verbatim from Clang? Would you mind documenting that in the 
summary?

https://github.com/llvm/llvm-project/pull/95411
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [flang] [flang] Implement -mcmodel flag (PR #95411)

2024-06-13 Thread David Truby via cfe-commits

https://github.com/DavidTruby created 
https://github.com/llvm/llvm-project/pull/95411

This patch implements the -mcmodel flag from clang, allowing the Code Model to
be changed for the LLVM module. The same set of mcmodel flags are accepted as
in clang and the same Code Model attributes are added to the LLVM module for
those flags.


>From 0ef4b61d0429517b92f7b6de7fa52c516f3a1468 Mon Sep 17 00:00:00 2001
From: David Truby 
Date: Thu, 13 Jun 2024 14:01:36 +
Subject: [PATCH] [flang] Implement -mcmodel flag

This patch implements the -mcmodel flag from clang, allowing the Code Model to
be changed for the LLVM module. The same set of mcmodel flags are accepted as
in clang and the same Code Model attributes are added to the LLVM module for
those flags.
---
 clang/include/clang/Driver/Options.td |  2 +-
 clang/lib/Driver/ToolChains/Clang.cpp | 76 +
 clang/lib/Driver/ToolChains/CommonArgs.cpp| 81 +++
 clang/lib/Driver/ToolChains/CommonArgs.h  |  4 +
 clang/lib/Driver/ToolChains/Flang.cpp |  5 ++
 .../include/flang/Frontend/CodeGenOptions.def |  1 +
 flang/lib/Frontend/CompilerInvocation.cpp | 21 +
 flang/lib/Frontend/FrontendActions.cpp|  3 +
 flang/test/Driver/mcmodel.f90 | 44 ++
 flang/test/Lower/mcmodel.f90  | 16 
 10 files changed, 177 insertions(+), 76 deletions(-)
 create mode 100644 flang/test/Driver/mcmodel.f90
 create mode 100644 flang/test/Lower/mcmodel.f90

diff --git a/clang/include/clang/Driver/Options.td 
b/clang/include/clang/Driver/Options.td
index 9f7904dd94b94..4087d3b95cc39 100644
--- a/clang/include/clang/Driver/Options.td
+++ b/clang/include/clang/Driver/Options.td
@@ -4600,7 +4600,7 @@ def inline_asm_EQ : Joined<["-"], "inline-asm=">, 
Group,
   NormalizedValuesScope<"CodeGenOptions">, NormalizedValues<["IAD_ATT", 
"IAD_Intel"]>,
   MarshallingInfoEnum, "IAD_ATT">;
 def mcmodel_EQ : Joined<["-"], "mcmodel=">, Group,
-  Visibility<[ClangOption, CC1Option]>,
+  Visibility<[ClangOption, CC1Option, FlangOption, FC1Option]>,
   MarshallingInfoString, [{"default"}]>;
 def mlarge_data_threshold_EQ : Joined<["-"], "mlarge-data-threshold=">, 
Group,
   Flags<[TargetSpecific]>, Visibility<[ClangOption, CC1Option]>,
diff --git a/clang/lib/Driver/ToolChains/Clang.cpp 
b/clang/lib/Driver/ToolChains/Clang.cpp
index 1f8591537b6c8..0447581128cd1 100644
--- a/clang/lib/Driver/ToolChains/Clang.cpp
+++ b/clang/lib/Driver/ToolChains/Clang.cpp
@@ -5908,81 +5908,7 @@ void Clang::ConstructJob(Compilation &C, const JobAction 
&JA,
 
   TC.addClangTargetOptions(Args, CmdArgs, JA.getOffloadingDeviceKind());
 
-  if (Arg *A = Args.getLastArg(options::OPT_mcmodel_EQ)) {
-StringRef CM = A->getValue();
-bool Ok = false;
-if (Triple.isOSAIX() && CM == "medium")
-  CM = "large";
-if (Triple.isAArch64(64)) {
-  Ok = CM == "tiny" || CM == "small" || CM == "large";
-  if (CM == "large" && !Triple.isOSBinFormatMachO() &&
-  RelocationModel != llvm::Reloc::Static)
-D.Diag(diag::err_drv_argument_only_allowed_with)
-<< A->getAsString(Args) << "-fno-pic";
-} else if (Triple.isLoongArch()) {
-  if (CM == "extreme" &&
-  Args.hasFlagNoClaim(options::OPT_fplt, options::OPT_fno_plt, false))
-D.Diag(diag::err_drv_argument_not_allowed_with)
-<< A->getAsString(Args) << "-fplt";
-  Ok = CM == "normal" || CM == "medium" || CM == "extreme";
-  // Convert to LLVM recognizable names.
-  if (Ok)
-CM = llvm::StringSwitch(CM)
- .Case("normal", "small")
- .Case("extreme", "large")
- .Default(CM);
-} else if (Triple.isPPC64() || Triple.isOSAIX()) {
-  Ok = CM == "small" || CM == "medium" || CM == "large";
-} else if (Triple.isRISCV()) {
-  if (CM == "medlow")
-CM = "small";
-  else if (CM == "medany")
-CM = "medium";
-  Ok = CM == "small" || CM == "medium";
-} else if (Triple.getArch() == llvm::Triple::x86_64) {
-  Ok = llvm::is_contained({"small", "kernel", "medium", "large", "tiny"},
-  CM);
-} else if (Triple.isNVPTX() || Triple.isAMDGPU() || Triple.isSPIRV()) {
-  // NVPTX/AMDGPU/SPIRV does not care about the code model and will accept
-  // whatever works for the host.
-  Ok = true;
-} else if (Triple.isSPARC64()) {
-  if (CM == "medlow")
-CM = "small";
-  else if (CM == "medmid")
-CM = "medium";
-  else if (CM == "medany")
-CM = "large";
-  Ok = CM == "small" || CM == "medium" || CM == "large";
-}
-if (Ok) {
-  CmdArgs.push_back(Args.MakeArgString("-mcmodel=" + CM));
-} else {
-  D.Diag(diag::err_drv_unsupported_option_argument_for_target)
-  << A->getSpelling() << CM << TripleStr;
-}
-  }
-
-  if (Triple.getArch() == llvm::Triple::x86_64) {
-bool IsMediumCM = false;
-bool IsLargeCM =

[clang] [flang] [flang] Implement -mcmodel flag (PR #95411)

2024-06-13 Thread via cfe-commits

llvmbot wrote:



@llvm/pr-subscribers-flang-fir-hlfir

@llvm/pr-subscribers-flang-driver

Author: David Truby (DavidTruby)


Changes

This patch implements the -mcmodel flag from clang, allowing the Code Model to
be changed for the LLVM module. The same set of mcmodel flags are accepted as
in clang and the same Code Model attributes are added to the LLVM module for
those flags.


---
Full diff: https://github.com/llvm/llvm-project/pull/95411.diff


10 Files Affected:

- (modified) clang/include/clang/Driver/Options.td (+1-1) 
- (modified) clang/lib/Driver/ToolChains/Clang.cpp (+1-75) 
- (modified) clang/lib/Driver/ToolChains/CommonArgs.cpp (+81) 
- (modified) clang/lib/Driver/ToolChains/CommonArgs.h (+4) 
- (modified) clang/lib/Driver/ToolChains/Flang.cpp (+5) 
- (modified) flang/include/flang/Frontend/CodeGenOptions.def (+1) 
- (modified) flang/lib/Frontend/CompilerInvocation.cpp (+21) 
- (modified) flang/lib/Frontend/FrontendActions.cpp (+3) 
- (added) flang/test/Driver/mcmodel.f90 (+44) 
- (added) flang/test/Lower/mcmodel.f90 (+16) 


``diff
diff --git a/clang/include/clang/Driver/Options.td 
b/clang/include/clang/Driver/Options.td
index 9f7904dd94b94..4087d3b95cc39 100644
--- a/clang/include/clang/Driver/Options.td
+++ b/clang/include/clang/Driver/Options.td
@@ -4600,7 +4600,7 @@ def inline_asm_EQ : Joined<["-"], "inline-asm=">, 
Group,
   NormalizedValuesScope<"CodeGenOptions">, NormalizedValues<["IAD_ATT", 
"IAD_Intel"]>,
   MarshallingInfoEnum, "IAD_ATT">;
 def mcmodel_EQ : Joined<["-"], "mcmodel=">, Group,
-  Visibility<[ClangOption, CC1Option]>,
+  Visibility<[ClangOption, CC1Option, FlangOption, FC1Option]>,
   MarshallingInfoString, [{"default"}]>;
 def mlarge_data_threshold_EQ : Joined<["-"], "mlarge-data-threshold=">, 
Group,
   Flags<[TargetSpecific]>, Visibility<[ClangOption, CC1Option]>,
diff --git a/clang/lib/Driver/ToolChains/Clang.cpp 
b/clang/lib/Driver/ToolChains/Clang.cpp
index 1f8591537b6c8..0447581128cd1 100644
--- a/clang/lib/Driver/ToolChains/Clang.cpp
+++ b/clang/lib/Driver/ToolChains/Clang.cpp
@@ -5908,81 +5908,7 @@ void Clang::ConstructJob(Compilation &C, const JobAction 
&JA,
 
   TC.addClangTargetOptions(Args, CmdArgs, JA.getOffloadingDeviceKind());
 
-  if (Arg *A = Args.getLastArg(options::OPT_mcmodel_EQ)) {
-StringRef CM = A->getValue();
-bool Ok = false;
-if (Triple.isOSAIX() && CM == "medium")
-  CM = "large";
-if (Triple.isAArch64(64)) {
-  Ok = CM == "tiny" || CM == "small" || CM == "large";
-  if (CM == "large" && !Triple.isOSBinFormatMachO() &&
-  RelocationModel != llvm::Reloc::Static)
-D.Diag(diag::err_drv_argument_only_allowed_with)
-<< A->getAsString(Args) << "-fno-pic";
-} else if (Triple.isLoongArch()) {
-  if (CM == "extreme" &&
-  Args.hasFlagNoClaim(options::OPT_fplt, options::OPT_fno_plt, false))
-D.Diag(diag::err_drv_argument_not_allowed_with)
-<< A->getAsString(Args) << "-fplt";
-  Ok = CM == "normal" || CM == "medium" || CM == "extreme";
-  // Convert to LLVM recognizable names.
-  if (Ok)
-CM = llvm::StringSwitch(CM)
- .Case("normal", "small")
- .Case("extreme", "large")
- .Default(CM);
-} else if (Triple.isPPC64() || Triple.isOSAIX()) {
-  Ok = CM == "small" || CM == "medium" || CM == "large";
-} else if (Triple.isRISCV()) {
-  if (CM == "medlow")
-CM = "small";
-  else if (CM == "medany")
-CM = "medium";
-  Ok = CM == "small" || CM == "medium";
-} else if (Triple.getArch() == llvm::Triple::x86_64) {
-  Ok = llvm::is_contained({"small", "kernel", "medium", "large", "tiny"},
-  CM);
-} else if (Triple.isNVPTX() || Triple.isAMDGPU() || Triple.isSPIRV()) {
-  // NVPTX/AMDGPU/SPIRV does not care about the code model and will accept
-  // whatever works for the host.
-  Ok = true;
-} else if (Triple.isSPARC64()) {
-  if (CM == "medlow")
-CM = "small";
-  else if (CM == "medmid")
-CM = "medium";
-  else if (CM == "medany")
-CM = "large";
-  Ok = CM == "small" || CM == "medium" || CM == "large";
-}
-if (Ok) {
-  CmdArgs.push_back(Args.MakeArgString("-mcmodel=" + CM));
-} else {
-  D.Diag(diag::err_drv_unsupported_option_argument_for_target)
-  << A->getSpelling() << CM << TripleStr;
-}
-  }
-
-  if (Triple.getArch() == llvm::Triple::x86_64) {
-bool IsMediumCM = false;
-bool IsLargeCM = false;
-if (Arg *A = Args.getLastArg(options::OPT_mcmodel_EQ)) {
-  IsMediumCM = StringRef(A->getValue()) == "medium";
-  IsLargeCM = StringRef(A->getValue()) == "large";
-}
-if (Arg *A = Args.getLastArg(options::OPT_mlarge_data_threshold_EQ)) {
-  if (!IsMediumCM && !IsLargeCM) {
-D.Diag(diag::warn_drv_large_data_threshold_invalid_code_model)
-<< A->getOption().getRenderName();
-  } else {