Tags: flang-compiler/flang
Tags
[flang2] Generate loads of complex variables with correct alignment flang2 calls the function make_load() to create various types of load instructions in the LLVM IR output. The function accepts a "flags" argument of type LL_InstrListFlags which should encode the alignment of the load, among other things. Apparently, for the IL_LDSCMPLX, IL_LDDCMPLX, and IL_LDQCMPLX opcodes, the flags had never been computed correctly. This patch makes such loads consistent with loads of other types, and also adds a test case.
Fix failures for imports with LLVM-17 (#1414) * Fix failures for imports with LLVM-17 Symptom: Compilation of any Fortran program with imports (USE statement) fails with assert in compiler backend. Diagnosis: LLVM-17 expects imports list in retainedNode field of DISubprogram wihch while Flang is still generating it as imports field of DICompilationUnit. Fix: Flang is now updated to new IR as expected by LLVM-17. * Incorporated comment from @bryan.
[workflows] Enable verbose output with -v For debugging purpose, add a -v option to build-flang.sh to enable verbose output. The option sets $VERBOSE to an non-empty string which forces the CMake-generated Makefile to print every command it runs.
runtime: fix building of alarm3f.c on Linux systems with modern glibc Popular UNIX systems (e.g. Linux, MacOS) have alarm() function declared in unistd.h, there is no need to provide a separate forward declaration, which could go easily out of date and create a conflict at compile time. Signed-off-by: Paul Osmialowski <pawel.osmialowski@arm.com>
win: Fix upperilm header generation clang-cl doesn't recognize "-P -E -x c" compiler arguments, we should use MSVC version of them "/E /TC". Seems clang-cl is not able to handle /P /E together so I only left the necessary one. Due to preprocessing upperilm.in, '#' will be represented in output. It needs to add a new list filter which exclude those lines which starts with '#'. Fixes: #1192
Fix private overwrite flag find_def_in_most_recent_scope() set the private bit to 0 when it found an alias. This was most likely unintended and could cause issues when resolving multiple definitions of the same symbol at a later stage (if a private symbol appeared to be publicly available). Tests for private flag overwrite added, based on flang github issue #890.
PreviousNext