aboutsummaryrefslogtreecommitdiff
path: root/src/zig_llvm.cpp
AgeCommit message (Collapse)Author
2019-09-21Correct stack alignment for new stackLemonBoy
2019-09-10Merge remote-tracking branch 'origin/master' into llvm9Andrew Kelley
2019-09-03fix stack traces on macos when passing absolute path to root source fileAndrew Kelley
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-08-28Merge remote-tracking branch 'origin/master' into llvm9Andrew Kelley
2019-08-26remove no longer needed gcc8 workaround. add gcc9 workaroundAndrew Kelley
Occasionally LLVM headers generate warnings with newer gcc versions and since we use -Werror this has to be worked around.
2019-08-16Merge remote-tracking branch 'origin/master' into llvm9Andrew Kelley
2019-08-16correct LLVM subarch names for armyvt
2019-08-13avoid the word "coroutine", they're "async functions"Andrew Kelley
2019-07-25`@frameSize` works via PrefixDataAndrew Kelley
2019-07-25calling an inferred async functionAndrew Kelley
2019-07-20always give the type to byval attributeAndrew Kelley
2019-07-16update to llvm9 trunkAndrew Kelley
2019-07-03add -ffunction-sections arg when building C objectsAndrew Kelley
the other changes in this commit are minor tidying up
2019-07-02Added ZigLLVMCreateTargetMachine and pass function-sections flagTimon Kruiper
Also added extra cache line Added the ZigLVVMCreateTargetMachine to self hosted zig code
2019-07-01Added function-section functionalityTimon Kruiper
2019-06-04Propagate DIFlags to LLVMLemonBoy
2019-05-20Build archives using the K_DARWIN format when targeting osxLemonBoy
2019-04-02more regression fixes. empty test passes againAndrew Kelley
2019-03-18workaround for Ubuntu/Debian bugAndrew Kelley
see #2076
2019-02-28Merge remote-tracking branch 'origin/master' into llvm8Andrew Kelley
2019-02-26breaking changes to the way targets work in zigAndrew Kelley
* CLI: `-target [name]` instead of `--target-*` args. This matches clang's API. * `builtin.Environ` renamed to `builtin.Abi` - likewise `builtin.environ` renamed to `builtin.abi` * stop hiding the concept of sub-arch. closes #1526 * `zig targets` only shows available targets. closes #438 * include all targets in readme, even those that don't print with `zig targets` but note they are Tier 4 * refactor target.cpp and make the naming conventions more consistent * introduce the concept of a "default C ABI" for a given OS/Arch combo. As a rule of thumb, if the system compiler is clang or gcc then the default C ABI is the gnu ABI.
2019-02-04fix vector debug info tripping LLVM assertionAndrew Kelley
2019-02-04fix vector debug info tripping LLVM assertionAndrew Kelley
2019-02-04Merge remote-tracking branch 'origin/master' into llvm8Andrew Kelley
2019-01-30introduce vector type for SIMDAndrew Kelley
See #903 * create with `@Vector(len, ElemType)` * only wrapping addition is implemented This feature is far from complete; this is only the beginning.
2019-01-24update to llvm8 trunk. all tests passingAndrew Kelley
2019-01-01Merge remote-tracking branch 'origin/master' into llvm8Andrew Kelley
2018-12-30Add DIFlagStaticMember flag to functions.alexander
Prevents LLVM from generating debug info for struct member functions with a pointer as the first parameter as though the first parameter were the implicit "this" pointer from C++.
2018-12-23llvm8: fix ZigLLVMCreateFunctionAndrew Kelley
2018-12-23llvm8: fix build errorsAndrew Kelley
2018-12-23Merge remote-tracking branch 'origin/master' into llvm8Andrew Kelley
2018-11-28work around to support debian's fork of llvm 7.0.1Andrew Kelley
it has a patch that adds an OS type, breaking the public API this commit avoids depending on the last os type enum item, but retains the safety assertion checks. closes #1788
2018-11-05update to build against llvm trunkAndrew Kelley
2018-10-09support building static librariesAndrew Kelley
closes #1493 closes #54
2018-09-30fixed native target detectionemekoi
2018-09-24Ignore class-memaccess error for gcc 8 and aboveWink Saville
On Arch Linux the current default compiler is gcc 8.2.1 and this change is needed to ignore the following errors: In file included from /home/wink/local/include/llvm/ADT/STLExtras.h:21, from /home/wink/local/include/llvm/ADT/StringRef.h:13, from /home/wink/local/include/llvm/ADT/StringMap.h:17, from /home/wink/local/include/llvm/Support/Host.h:17, from /home/wink/local/include/llvm/ADT/Hashing.h:49, from /home/wink/local/include/llvm/ADT/ArrayRef.h:13, from /home/wink/local/include/llvm/ADT/APFloat.h:21, from /home/wink/local/include/clang/AST/APValue.h:18, from /home/wink/local/include/clang/AST/Decl.h:17, from /home/wink/local/include/clang/AST/ASTTypeTraits.h:20, from /home/wink/local/include/clang/AST/ASTContext.h:18, from /home/wink/local/include/clang/Frontend/ASTUnit.h:18, from /home/wink/prgs/ziglang/zig/src/translate_c.cpp:18: /home/wink/local/include/llvm/ADT/SmallVector.h: In instantiation of ‘void llvm::SmallVectorTemplateBase<T, true>::push_back(const T&) [with T = std::pair<void*, long unsigned int>]’: /home/wink/local/include/llvm/Support/Allocator.h:249:33: required from ‘void* llvm::BumpPtrAllocatorImpl<AllocatorT, SlabSize, SizeThreshold>::Allocate(size_t, size_t) [with AllocatorT = llvm::MallocAllocator; long unsigned int SlabSize = 4096; long unsigned int SizeThreshold = 4096; size_t = long unsigned int]’ /home/wink/local/include/clang/AST/ASTContext.h:659:42: required from here /home/wink/local/include/llvm/ADT/SmallVector.h:313:11: error: ‘void* memcpy(void*, const void*, size_t)’ writing to an object of type ‘struct std::pair<void*, long unsigned int>’ with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Werror=class-memaccess] memcpy(this->end(), &Elt, sizeof(T)); ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/c++/8.2.1/utility:70, from /home/wink/local/include/llvm/Support/type_traits.h:19, from /home/wink/local/include/llvm/Support/Casting.h:19, from /home/wink/local/include/clang/Basic/LLVM.h:22, from /home/wink/local/include/clang/AST/APValue.h:17, from /home/wink/local/include/clang/AST/Decl.h:17, from /home/wink/local/include/clang/AST/ASTTypeTraits.h:20, from /home/wink/local/include/clang/AST/ASTContext.h:18, from /home/wink/local/include/clang/Frontend/ASTUnit.h:18, from /home/wink/prgs/ziglang/zig/src/translate_c.cpp:18: /usr/include/c++/8.2.1/bits/stl_pair.h:198:12: note: ‘struct std::pair<void*, long unsigned int>’ declared here struct pair ^~~~
2018-09-16Merge remote-tracking branch 'origin/master' into llvm7Andrew Kelley
2018-09-11rename --enable-timing-info to -ftime-report to match clangAndrew Kelley
and have it print llvm's internal timing info
2018-07-24Merge remote-tracking branch 'origin/master' into llvm7Andrew Kelley
2018-07-16self-hosted: create tmp dir for .o files and emit .o file for fnAndrew Kelley
2018-07-03update for latest llvmAndrew Kelley
2018-06-14llvm7: find external liblldWasm and update for newest lld macho APIAndrew Kelley
2018-06-14Merge remote-tracking branch 'origin/master' into llvm7Andrew Kelley
2018-06-09support `--target-arch wasm32` (#1094)Ben Noordhuis
Add wasm32 support to the build-obj, build-exe and build-lib commands of the stage 1 compiler. Wasm64 should work transparently once it's supported in upstream LLVM. To export a function: // lib.zig - for exposition, not necessary for this example pub use @import("add.zig"); // add.zig export fn add(a: i32, b: i32) i32 { return a + b; } To import a function: // cube.zig extern fn square(x: i32) i32; export fn cube(x: i32) i32 { return x * square(x); }
2018-05-26update to latest LLVM APIAndrew Kelley
2018-04-26Merge remote-tracking branch 'origin/master' into llvm7Andrew Kelley
2018-04-18improve cmpxchgAndrew Kelley
* remove @cmpxchg, add @cmpxchgWeak and @cmpxchgStrong - See explanations in the langref. * add operand type as first parameter * return type is ?T where T is the operand type closes #461
2018-04-16Set SizeLevel to 2 in ReleaseSmall modeAlexandros Naskos
2018-04-16Added ReleaseSmall modeAlexandros Naskos
2018-04-04update to latest llvm APIAndrew Kelley