Andrew Kelley
4d8c5dd4be
stage1: add tsan LLVM passes when appropriate
2020-12-24 01:18:48 -07:00
Andrew Kelley
72f6c6e634
invoke LLD as a child process rather than a library
...
Closes #3825
2020-12-08 20:00:16 -07:00
Andrew Kelley
55ab50efbd
Merge branch 'piepiepie' of https://github.com/LemonBoy/zig into pie
...
Conflicts:
lib/std/dynamic_library.zig (fixed in this commit)
src/all_types.hpp
src/codegen.cpp
src/link.cpp
src/main.cpp
Will manually apply the diffs to these deleted files to the new zig
code in a followup commit.
2020-11-22 12:39:44 -07:00
Timon Kruiper
66d6930b5c
Allow Zig to be built with clang 11 and -Werror
...
This was brought to the horizon when using zig-bootstrap to cross compile
Zig for windows-gnu.
2020-11-18 13:09:44 +02:00
Frank Denis
0c520cd32d
Enable loop interleaving when unrolling is enabled
...
This mimics clang's default behavior.
2020-11-16 13:40:52 -08:00
LemonBoy
0d6a7088dc
stage1: Implement Add/Mul reduction operators
2020-11-01 14:30:31 -07:00
Andrew Kelley
c19dcafa17
Merge remote-tracking branch 'origin/master' into llvm11
2020-10-12 17:57:35 -07:00
Vignesh Rajagopalan
2ab0c7391a
Rename .macosx to .macos
2020-10-12 18:56:25 -04:00
Andrew Kelley
b5a36f676b
Merge remote-tracking branch 'origin/master' into llvm11
...
Conflicts:
cmake/Findllvm.cmake
The llvm11 branch changed 10's to 11's and master branch added the
"using LLVM_CONFIG_EXE" help message, so the resolution was to merge
these changes together.
I also added a check to make sure LLVM is built with AVR enabled, which
is no longer an experimental target.
2020-10-07 00:46:05 -07:00
LemonBoy
22b5e47839
stage1: Implement @reduce builtin for vector types
...
The builtin folds a Vector(N,T) into a scalar T using a specified
operator.
Closes #2698
2020-10-05 04:51:45 -04:00
Andrew Kelley
7067764ed3
Merge remote-tracking branch 'origin/master' into llvm11
...
The changes to install_files.h needed to put into src/libcxx.zig
2020-09-30 02:55:41 -07:00
Andrew Kelley
ada19c498d
stage2: building DLL import lib files
2020-09-28 19:20:58 -07:00
Andrew Kelley
c8ea8cf5df
update LLVM C++ API wrappers from llvm 10 to 11
2020-07-24 16:49:57 -07:00
Andrew Kelley
11b50e3ad8
change the default ABI of riscv64-linux-musl
...
Before, this would cause a link failure when mixing Zig and C code for
RISC-V targets.
Now, the ABIs match and Zig and C code can be mixed successfully.
I will file a follow-up issue for the ability to deal more explicitly
with ABIs.
closes #4863
2020-04-03 13:13:09 -04:00
Andrew Kelley
f33bf48af7
Merge remote-tracking branch 'origin/master' into llvm10
2020-02-25 16:30:40 -05:00
Andrew Kelley
61c67a9833
remove sub-arch from stage1
2020-02-21 11:47:34 -05:00
Andrew Kelley
d7968c6d33
improvements which allow zig to emit multiple things at once
...
example: zig build-obj test.zig -femit-llvm-ir -femit-asm
this will generate all three: test.o test.s test.ll
2020-02-18 21:59:43 -05:00
Andrew Kelley
a95dce15ae
Merge remote-tracking branch 'origin/master' into llvm10
2020-01-29 23:33:12 -05:00
Andrew Kelley
79fb486017
link: update to llvm 10 API
2020-01-23 17:28:13 -05:00
Andrew Kelley
fbfda7f00e
fix incorrect list of sub-arches for aarch64
...
tests use older sub-arch that works in the older qemu
2020-01-23 13:02:45 -05:00
Andrew Kelley
fb8e681ea8
update zig_llvm.h and zig_llvm.cpp to llvm 10
2020-01-22 18:43:30 -05:00
Andrew Kelley
7e674d6761
zig_llvm: update CodeGenFileType usage
2020-01-16 21:32:07 -05:00
Andrew Kelley
fbe6af81fd
Merge remote-tracking branch 'origin/master' into llvm10
2020-01-16 13:01:36 -05:00
LemonBoy
435528a7c5
Use the LLVM C++ API
2020-01-02 18:57:09 +01:00
Vexu
ab7fc33c83
add zig llvm wrapper for atomicrmw
2019-12-23 11:55:00 +02:00
LemonBoy
333eec557f
Initial support for static PIE executables
2019-12-21 17:34:05 +01:00
LemonBoy
f1407b4b7e
Generate the fn pointers into the correct address space
...
Fixes #3645
2019-12-15 14:42:53 -05:00
Andrew Kelley
1f602fe8c5
implement @call
...
closes #3732
2019-12-05 17:07:15 -05:00
LemonBoy
2b624fea84
Add dlltool functionality
...
Don't need no patched lld --kill-at behaviour now.
2019-10-12 10:56:16 +02:00
Andrew Kelley
ce56ae8afe
we have to use c++14 now for llvm10
2019-10-02 13:05:10 -04:00
LemonBoy
093ffe9f16
Correct stack alignment for new stack
2019-09-21 11:39:50 +02:00
Andrew Kelley
185cb13278
Merge remote-tracking branch 'origin/master' into llvm9
2019-09-10 13:00:35 -04:00
Andrew Kelley
e673d865fb
fix stack traces on macos when passing absolute path to root source file
...
The comment added by this commit is copied here:
For macOS stack traces, we want to avoid having to parse the compilation unit debug
info. As long as each debug info file has a path independent of the compilation unit
directory (DW_AT_comp_dir), then we never have to look at the compilation unit debug
info. If we provide an absolute path to LLVM here for the compilation unit debug info,
LLVM will emit DWARF info that depends on DW_AT_comp_dir. To avoid this, we pass "."
for the compilation unit directory. This forces each debug file to have a directory
rather than be relative to DW_AT_comp_dir. According to DWARF 5, debug files will
no longer reference DW_AT_comp_dir, for the purpose of being able to support the
common practice of stripping all but the line number sections from an executable.
closes #2700
2019-09-03 13:46:08 -04:00
Andrew Kelley
928ce5e326
Merge remote-tracking branch 'origin/master' into llvm9
2019-08-28 16:59:35 -04:00
Andrew Kelley
1df75da918
remove no longer needed gcc8 workaround. add gcc9 workaround
...
Occasionally LLVM headers generate warnings with newer gcc versions and
since we use -Werror this has to be worked around.
2019-08-26 21:40:44 -04:00
Andrew Kelley
6529658ad8
Merge remote-tracking branch 'origin/master' into llvm9
2019-08-16 16:43:56 -04:00
yvt
2cb1f93894
correct LLVM subarch names for arm
2019-08-16 08:46:18 -07:00
Andrew Kelley
5092634103
avoid the word "coroutine", they're "async functions"
2019-08-13 14:14:19 -04:00
Andrew Kelley
7b3686861f
@frameSize works via PrefixData
2019-07-25 22:24:01 -04:00
Andrew Kelley
ead2d32be8
calling an inferred async function
2019-07-25 00:03:06 -04:00
Andrew Kelley
2c1e955de7
always give the type to byval attribute
2019-07-20 13:32:50 -04:00
Andrew Kelley
8f92a49dfd
update to llvm9 trunk
2019-07-16 22:23:48 -04:00
Andrew Kelley
4606baee07
add -ffunction-sections arg when building C objects
...
the other changes in this commit are minor tidying up
2019-07-03 15:46:27 -04:00
Timon Kruiper
bbc0d440b8
Added ZigLLVMCreateTargetMachine and pass function-sections flag
...
Also added extra cache line
Added the ZigLVVMCreateTargetMachine to self hosted zig code
2019-07-02 19:54:29 +02:00
Timon Kruiper
7586f613d5
Added function-section functionality
2019-07-01 17:49:08 +02:00
LemonBoy
80cd142c96
Propagate DIFlags to LLVM
2019-06-04 09:05:33 +02:00
LemonBoy
f5657b5552
Build archives using the K_DARWIN format when targeting osx
2019-05-20 17:04:00 +02:00
Andrew Kelley
4c38a8cce1
more regression fixes. empty test passes again
2019-04-02 18:31:19 -04:00
Andrew Kelley
fca83876d8
workaround for Ubuntu/Debian bug
...
see #2076
2019-03-18 20:56:46 -04:00
Andrew Kelley
2dcf1a2392
Merge remote-tracking branch 'origin/master' into llvm8
2019-02-28 09:19:18 -05:00