Commit Graph

108 Commits

Author SHA1 Message Date
gingerBill
d88b052d2d Naïve optimization of named _split_ multiple return valued when defer is never used
This is a naïve optimization but it helps a lot in the general case where callee temporary stack variables
are not allocated to represent the named return values by using that specific memory.

In the future, try to check if a specific named return value is ever used a `defer` within a procedure or not,
or is ever passed to a nested procedure call (e.g. possibly escapes).
2022-11-25 23:57:55 +00:00
gingerBill
c663566cd5 Fixed comparison against nil for maps 2022-11-20 01:34:57 +00:00
gingerBill
d2019e3e4d Enforce pointer cast 2022-11-13 23:50:45 +00:00
gingerBill
16fc961010 Begin work on map static set 2022-11-11 14:45:22 +00:00
gingerBill
8852d090b6 Correct static map get; make get take a pointer to simplify compiler internals 2022-11-10 12:46:53 +00:00
gingerBill
1bcec3f769 Change map internal calls to use a pointer 2022-11-09 22:21:36 +00:00
gingerBill
046dd55032 Change __dynamic_map_get signature 2022-11-08 13:02:32 +00:00
gingerBill
2b7ca2bdd6 Fix #2160 (deep subtyping through using of _) 2022-11-01 13:14:20 +00:00
gingerBill
9da37ed394 Optimize #caller_location and #location to use read only data section where possible 2022-10-31 00:04:15 +00:00
gingerBill
532133d648 Minor technical improvement 2022-09-22 00:55:28 +01:00
gingerBill
ff97a73152 Reduce unnecessary map gets 2022-09-21 13:03:13 +01:00
gingerBill
7840c1b89f Change __dynamic_map_get and __dynamic_map_set to use separate parameters rather than take a singular struct 2022-09-17 12:48:12 +01:00
gingerBill
4998cf80c1 Fix #2017 mismatched types in binary matrix expression for flt * (mat * vec) 2022-09-05 16:35:56 +01:00
gingerBill
3e3b9ae2df Fix #1994 Returning to err: Maybe(Error) raises compiler assert 2022-09-01 16:33:44 +01:00
gingerBill
aeacf3a9d8 Correct max alignment handling throughout the llvm backend 2022-08-24 13:07:41 +01:00
gingerBill
777aa8b118 Merge pull request #1955 from jaspergeer/fix-endian-type-conversion
fix #1759 endian float type conversion errors
2022-08-24 12:49:57 +01:00
gingerBill
c8c076f970 Fix #1963 2022-08-19 16:57:36 +01:00
Jasper Geer
5387ec5f29 Remove erroneous byte swap 2022-08-16 19:22:52 -07:00
gingerBill
a19494d3a7 Minor refactoring of lb_build_addr 2022-08-11 16:12:07 +01:00
gingerBill
d2a362fd52 Clean up compound literal backend stuff some more 2022-08-11 16:07:55 +01:00
gingerBill
0f3562ef02 Improve compound literal generation for array-like types 2022-08-11 16:01:46 +01:00
gingerBill
cb0a59bb2c Eliminate use of LLVMGetElementType for pointers 2022-08-09 15:36:18 +01:00
gingerBill
076700bd22 Merge pull request #1933 from lerno/reduce_reliance_on_ptr_type
Removed use of deprecated functions. Cleaned up most deprecated use o…
2022-08-09 15:18:09 +01:00
gingerBill
5e3cf45df3 Add #soa pointer type to aid with refactoring to #soa data types
a: #soa[16]Foo
p := &a[6]
#assert(type_of(p) == #soa^#soa[16]Foo)
p^.x = 123
p.x = 123
2022-08-08 15:07:00 +01:00
Christoffer Lerno
9c0a3b6c60 Removed use of deprecated functions. Cleaned up most deprecated use of LLVMGetElementType. 2022-08-07 19:26:28 +02:00
gingerBill
6caab6225d Fix #1930 2022-08-05 11:36:12 +01:00
gingerBill
2542983d70 Fix #1793 2022-07-24 12:54:05 +01:00
gingerBill
d492fb3501 Fix and improve x->y() behaviour to minimize duplicate evaluation 2022-07-24 12:39:59 +01:00
gingerBill
6c7e5748a8 Integrate numerous debug fixes from #1877 2022-07-18 12:49:29 +01:00
gingerBill
78826071c0 Fix #1836 2022-07-16 23:14:09 +01:00
gingerBill
f886632bf1 Fix #1880 2022-07-16 22:18:07 +01:00
gingerBill
041625381c Fix #1888 2022-07-16 17:36:03 +01:00
gingerBill
618d3bf62f Improve vector comparison == != for horizontal reduction 2022-05-28 13:42:58 +01:00
gingerBill
d0e8a735ba Add arithmetic operator support for simd vectors; Add intrinsics.simd_and_not 2022-05-26 17:09:46 +01:00
gingerBill
f308f37ba1 Remove need for simd.splat 2022-05-26 14:51:50 +01:00
gingerBill
09f936b04d Correct casting between integer and boolean #simd 2022-05-25 23:24:32 +01:00
gingerBill
0203bb657e Allow for non-constant simd vector compound types 2022-05-25 20:39:22 +01:00
gingerBill
f21e9ee712 Allow basic casting of simd vectors 2022-05-25 18:59:47 +01:00
gitlost
fdbbf24271 Fix issue #1592 "LLVM code gen error when using a constant in an if"
Changes lb_build_if_stmt() to return null lbValue if condition is
  cmpAnd, cmpOr or non-const neg and check in lb_build_if_stmt()
  to avoid short circuiting if that's the case
Adds test to "tests/issues" and adds step in CI to check this dir
2022-03-18 13:57:22 +00:00
gingerBill
a7adb2fb6e Merge branch 'master' into freestanding_amd64 2022-03-14 11:02:59 +00:00
gingerBill
dc8d28c383 Fix #1607 2022-03-09 15:15:30 +00:00
gingerBill
278e239973 Commit rest of code for -disallow-rtti 2022-02-28 13:40:01 +00:00
gingerBill
0e5928ff39 Correct pseudo selector code generation 2022-02-15 15:16:30 +00:00
gingerBill
f8afda3b22 Add more objc attributes 2022-02-11 22:54:51 +00:00
gingerBill
19aec13a10 Support rank-2 arrays (matrix-like) for transpose 2022-02-06 11:42:59 +00:00
gingerBill
445ca70521 Correct implicit union cast 2022-02-05 16:11:48 +00:00
gingerBill
24e7356825 Add #no_type_assert and #type_assert to disable implicit type assertions with x.(T) 2022-01-27 16:08:47 +00:00
gingerBill
b190404b21 Fix double map dereference indexing 2022-01-26 16:37:16 +00:00
gingerBill
29ebe0c3c9 Rename architecture 386 to i386 2022-01-15 17:40:00 +00:00
gingerBill
0d7cb02386 Fix conversion from float to quaternion 2021-12-31 23:20:14 +00:00