Forum Smadav

Teknologi Komputer dan Internet => Programming => C/C++ => Topik dimulai oleh: descrates pada Februari 20, 2019, 06:37:01 AM

Judul: cara sederhana invoke Clang ke MSVC
Ditulis oleh: descrates pada Februari 20, 2019, 06:37:01 AM
intinya tested on clang 9.0 (windows prebuilt)
kita ekstraksi dulu dari installernya pakai 7zip
karena jenisnya NSIS

sebenarnya dari install bisa "normal"
hanya saja boros space dan tidak bisa portable

yang diburuhkan tidak semua file
hanya clang.exe, llvm-lib.exe dan lld.exe

clang.exe rename ke cl.exe (bisa gunakan juga clang-cl.exe)
lld.exe rename ke link.exe (bisa gunakan juga lld-link.exe)
llvm-lib.exe rename ke lib.exe

setelah itu paste ke folder bin di MSVC (jangan lupa backup)
kelemahannya tidak bisa fallback, tapi oke saja sejauh ini
kelebihannya kita bisa maksimal dalam memakai flag
dari -O3 sampai -flto (dan lain sebagainya)

kalau terjadi error compile di SSE2 atau AVX
maka ekstraksi juga header bawaan Clang

nb: fungsi linker MSVC di lld masih agak buggy
Judul: Re:cara sederhana invoke Clang ke MSVC
Ditulis oleh: descrates pada Oktober 02, 2019, 07:18:33 AM
btw baru kepikiran kalo kita bisa juga invoke target cpu
ini seperti perintah arch

-target-cpu nocona
-target-cpu prescott
-target-cpu <jenis cpu>

tapi berdasarkan test, settingannya agak kurang oke
misal untuk standar SSE2 pada aplikasi 32 bit
STANDARNYA arch:SSE2
native clang -target-cpu pentium4
tapi lebih baik pakai -target-cpu pentium4m
kenapa beda?
karena pada pentium4 pakai Willamette
sedangkan pada pentium4m pakai Northwood
terus kenapa juga tidak prescott?
karena prescott sudah 64bit
dan lebih baik pakai opteron-sse3