aboutsummaryrefslogtreecommitdiff
path: root/src/ir.cpp
AgeCommit message (Collapse)Author
2017-10-06fix compiler crash when invalid value usedAndrew Kelley
closes #527
2017-10-03add @setAlignStack builtinAndrew Kelley
2017-09-20Merge branch 'master' into c-to-zigAndrew Kelley
2017-09-17fix use of uninitialized variable in alignCastAndrew Kelley
2017-09-14depend on embedded SoftFloat-3d instead of __float128Andrew Kelley
See #302 See #467
2017-09-13add Child property of slice typeAndrew Kelley
also rename child field to Child for pointer and array
2017-09-12fix error messagesAndrew Kelley
2017-09-11Add support for MSVCJonathan Marler
2017-09-10fix not verifying GlobalLinkage and AtomicOrder typesAndrew Kelley
thanks to aep4Ayai on IRC
2017-09-10variables are allowed to be pointers to opaqueAndrew Kelley
2017-09-09more compile errors for non-const variables of thingsAndrew Kelley
closes #456
2017-09-07std: os.ChildProcess knows when its child diedAndrew Kelley
using signal handlers
2017-09-05rename parseh to parsecAndrew Kelley
2017-09-05Merge branch 'c-to-zig'Andrew Kelley
2017-09-05add OpaqueType builtinAndrew Kelley
closes #326
2017-09-05fix void return node and param name nodes, fix dupe macrosAndrew Kelley
all tests passing
2017-09-02rewrite parseh to use AST instead of direct typesAndrew Kelley
some tests still failing
2017-09-01cleanup whitespaceJosh Wolfe
2017-08-31setEvalBranchQuota must be called from top of comptime stackAndrew Kelley
2017-08-31allow array literals to have size and fix comptime bugAndrew Kelley
2017-08-30codegen: all stores specify align valueAndrew Kelley
See #37
2017-08-30compile error for not-aligned-enough pointer to cmpxchgAndrew Kelley
See #37
2017-08-30add alignment field to pointer typeAndrew Kelley
2017-08-30when getting an element pointer, use the best alignmentAndrew Kelley
type we can figure out is safe to use See #37
2017-08-30@ptrCast preserves larger alignment if applicableAndrew Kelley
See #37
2017-08-30add "child" field to pointer typeAndrew Kelley
2017-08-29more alignment improvementsAndrew Kelley
* add alignment capability for fn protos * add @alignCast * fix some ast rendering code * fix some ir rendering code * add error for pointer cast increasing alignment * update allocators in std to correctly align See #37
2017-08-29fix testsAndrew Kelley
2017-08-29ptrCast gives compile error for increasing alignmentAndrew Kelley
See #37
2017-08-29fix bitfield pointer syntaxAndrew Kelley
See #37
2017-08-29introduce align keywordAndrew Kelley
* remove `@setGlobalAlign` * add align keyword for setting alignment on functions and variables. * loads and stores use alignment from pointer * memcpy, memset use alignment from pointer * add syntax for pointer alignment * slices can have volatile * add u2, i2 primitives * ignore preferred align and use abi align everywhere * back to only having alignOf builtin. preferredAlignOf is too tricky to be useful. See #432. Partial revert of e726925e802eddab53cbfd9aacbc5eefe95c356f. See #37
2017-08-26remove @alignOf and add @cAbiAlignOf and @preferredAlignOfAndrew Kelley
See #396
2017-08-26add some asserts in switch analysis codeAndrew Kelley
2017-08-25implement comptime bitcasting from arrayAndrew Kelley
2017-08-25fix some casts on const data causing segfaultAndrew Kelley
2017-08-25refactor - codegen llvm functions lazilyAndrew Kelley
2017-08-20compile-time f32, f64 operations are now correctly lossyAndrew Kelley
previously we used the bigfloat abstraction to do all compile-time float math. but runtime code and comptime code are supposed to get the same result. so now if you add a f32 to a f32 at compile time it does it with f32 math instead of the bigfloat. float literals still get the bigfloat math. closes #424
2017-08-19add setEvalBranchQuota builtin functionAndrew Kelley
2017-08-19bit shifting safetyAndrew Kelley
* add u3, u4, u5, u6, u7 and i3, i4, i5, i6, i7 * shift operations shift amount parameter type is integer with log2 bit width of other param - This enforces not violating undefined behavior on shift amount >= bit width with the type system * clean up math.log, math.ln, math.log2, math.log10 closes #403
2017-08-17fix wrong value for clz, ctz at compile timeAndrew Kelley
closes #418 also make clz, ctz return smaller integer bit widths and use smaller integer bit widths for enum tag types
2017-08-09more intuitive left shift and right shift operatorsAndrew Kelley
Before: * << is left shift, not allowed to shift 1 bits out * <<% is left shift, allowed to shift 1 bits out * >> is right shift, allowed to shift 1 bits out After: * << is left shift, allowed to shift 1 bits out * >> is right shift, allowed to shift 1 bits out * @shlExact is left shift, not allowed to shift 1 bits out * @shrExact is right shift, not allowed to shift 1 bits out Closes #413
2017-08-08add ptrToInt builtin, remove usize(ptr) castAndrew Kelley
closes #415
2017-08-07add ability to explicitly cast float to integerAndrew Kelley
closes #414
2017-08-07Correct floating-point literal allowed rangesMarc Tiehuis
The exponent range for floating-point values is [-1022, 1023]. Fixes #399.
2017-08-05fix initializing undefined and crash when casting to invalid typeAndrew Kelley
closes #408
2017-07-08better bigint/bigfloat implementationAndrew Kelley
2017-06-17fix peer type resolution for array and errorAndrew Kelley
closes #388
2017-06-15fix alignOf builtinAndrew Kelley
* fix assertion error when type is not yet complete * fix alignment value closes #391
2017-06-14partial implementation of printing floating point numbers with errol3Andrew Kelley
also add bitCast builtin function. closes #387
2017-06-14progress toward windows hello world workingAndrew Kelley