aboutsummaryrefslogtreecommitdiff
path: root/src/codegen.cpp
AgeCommit message (Collapse)Author
2019-07-07expose glibc version in builtinAndrew Kelley
2019-07-07ability to target any glibc versionAndrew Kelley
2019-07-03add -ffunction-sections arg when building C objectsAndrew Kelley
the other changes in this commit are minor tidying up
2019-07-03Merge branch 'function-sections' of https://github.com/timonkruiper/zig into ↵Andrew Kelley
timonkruiper-function-sections
2019-07-03Merge branch 'comptime-union-init' of https://github.com/rbscott/zig into ↵Andrew Kelley
rbscott-comptime-union-init
2019-07-02Merge branch 'has-field' of https://github.com/shawnl/zig into shawnl-has-fieldAndrew Kelley
2019-07-02print dir name on failure to write to cache dirAndrew Kelley
closes #2429
2019-07-02improved logic on whether to include start filesAndrew Kelley
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-28rename std/special/bootstrap.zig to std/special/start.zigAndrew Kelley
2019-06-27fixupsAndrew Kelley
* better detection for already seen packages * "root" instead of "@root"
2019-06-27Merge branch 'root-import' of https://github.com/emekoi/zig into ↵Andrew Kelley
emekoi-root-import
2019-06-26fix incorrectly omitting variable declarationsAndrew Kelley
in non-debug modes
2019-06-26Merge remote-tracking branch 'origin/master' into copy-elision-3Andrew Kelley
2019-06-26all tests passing on linuxAndrew Kelley
2019-06-25fix union init with void payloadAndrew Kelley
all std lib tests passing now
2019-06-24align (vector -> array) store to result locationMichael Dusan
2019-06-22elide redundant safety check when switching on tagged unionsAndrew Kelley
2019-06-22stage1: add @sin @cos @exp @exp2 @ln @log2 @log10 @fabs @floor @ceil @trunc ↵Shawn Landden
@round and expand @sqrt This revealed that the accuracy of ln is not as good as the current algorithm in musl and glibc, and should be ported again. v2: actually include tests v3: fix reversal of in and out arguments on f128M_sqrt() add test for @sqrt on comptime_float do not include @nearbyInt() until it works on all targets.
2019-06-21fix extern functions returning byval structsAndrew Kelley
2019-06-20fix coroutinesAndrew Kelley
2019-06-19fix double getelementptr of runtime globalAndrew Kelley
2019-06-19Merge remote-tracking branch 'origin/master' into copy-elision-3Andrew Kelley
2019-06-19fix optional pointer to size zero structAndrew Kelley
2019-06-19fix comptime test error for empty error setAndrew Kelley
2019-06-19fix extraneous nested union field instructionAndrew Kelley
2019-06-19fix comptime modification of const struct fieldAndrew Kelley
2019-06-19stage1: add support for @mulAdd fused-multiply-add for floats and vectors of ↵Shawn Landden
floats Not all of the softfloat library is being built.... Vector support is very buggy at the moment, but should work when the bugs are fixed. (as I had the same code working with another vector function, that hasn't been merged yet).
2019-06-18back to many behavioral tests passingAndrew Kelley
2019-06-17Remove duplicate exe name with zig runJonathan Marler
2019-06-17inferred comptime values rather than elided scopesAndrew Kelley
because of this example: ```zig export fn entry(b: bool) usize { var runtime = [1]i32{3}; comptime var i: usize = 0; inline while (i < 2) : (i += 1) { const result = if (i == 0) [1]i32{2} else runtime; } comptime { return i; } } ``` The problem is that the concept of "resetting" a result location, introduced in the previous commit, cannot handle elision scopes. This concept is inherently broken with inline loops.
2019-06-15better result location handling of inline loopsAndrew Kelley
2019-06-15better result location semantics with optionals and return locationsAndrew Kelley
somewhere along this branch, #1901 has been fixed.
2019-06-15Merge remote-tracking branch 'origin/master' into copy-elision-3Andrew Kelley
2019-06-14standard library integrates with knowledge of stripped debug infoAndrew Kelley
2019-06-14expose builtin.strip_debug_infoAndrew Kelley
zig code now can be made aware that it will not have any debug information available at runtime.
2019-06-14fix `@export` for arrays not respecting the symbol nameAndrew Kelley
Previously, the symbol name parameter of `@export` would be ignored for variables, and the variable name would be used for the symbol name. Now it works as expected. See #2679
2019-06-14fix peer result location with error code and payloadAndrew Kelley
2019-06-11fixed infinite loop when caching packagesemekoi
2019-06-11made root package available to itselfemekoi
2019-06-11made root package available to all other packagesemekoi
2019-06-11fix returning scalar valuesAndrew Kelley
```zig export fn entry1() i32 { return bar(); } ``` ```llvm define i32 @entry1() #2 !dbg !35 { Entry: %0 = call fastcc i32 @bar(), !dbg !39 ret i32 %0, !dbg !41 } ```
2019-06-11fix `@bitCast` semantics when there is no parent result locAndrew Kelley
2019-06-11fix struct and array init when result casted to anyerror!?TAndrew Kelley
2019-06-11fix implicit casting return value struct/arary init to optionalAndrew Kelley
2019-06-11fix comptime function callsAndrew Kelley
2019-06-10remove the final legacy stack allocationAndrew Kelley
2019-06-10use result loc for ref instructionAndrew Kelley
2019-06-10result location semantics for vector to arrayAndrew Kelley
```zig export fn entry() void { var x: @Vector(4, i32) = undefined; var y: [4]i32 = x; } ``` ```llvm define void @entry() #2 !dbg !35 { Entry: %x = alloca <4 x i32>, align 16 %y = alloca [4 x i32], align 4 %0 = bitcast <4 x i32>* %x to i8*, !dbg !47 call void @llvm.memset.p0i8.i64(i8* align 16 %0, i8 -86, i64 16, i1 false), !dbg !47 call void @llvm.dbg.declare(metadata <4 x i32>* %x, metadata !39, metadata !DIExpression()), !dbg !47 %1 = load <4 x i32>, <4 x i32>* %x, align 16, !dbg !48 %2 = bitcast [4 x i32]* %y to <4 x i32>*, !dbg !48 store <4 x i32> %1, <4 x i32>* %2, align 16, !dbg !48 call void @llvm.dbg.declare(metadata [4 x i32]* %y, metadata !45, metadata !DIExpression()), !dbg !49 ret void, !dbg !50 } ```