Commit Graph

223 Commits

Author SHA1 Message Date
gingerBill
4e370e6ed8 Add equal procedure field to runtime.Type_Info_Struct 2020-11-23 15:53:49 +00:00
gingerBill
0b30c3dc5a Add flags: Type_Info_Flags, to runtime.Type_Info 2020-11-23 14:35:31 +00:00
gingerBill
9e42cb1595 Add comparisons to structs where all fields are comparable == and != 2020-11-23 12:20:04 +00:00
gingerBill
63e4a2341f Support string literals for fixed arrays of runes; Add %q support for arrays/slices of bytes 2020-11-20 16:24:23 +00:00
gingerBill
6416a6f39c Allow string literals for [N]byte 2020-11-20 16:01:59 +00:00
gingerBill
db0bcbc4f4 Fix calling convention for new LLVM ABI, and changePtrSet index to be u32 rather than isize 2020-11-15 21:19:08 +00:00
gingerBill
3c1c10a178 Begin clarifying allocation patterns by changing from heap_allocator to specific arenas 2020-11-15 18:08:52 +00:00
gingerBill
a64ea342df Improve USE_NEW_LLVM_ABI_SYSTEM's System V ABI 2020-11-12 23:40:13 +00:00
gingerBill
70b8b3c7dd Update LLVM backend to begin work on a generic ABI system 2020-11-12 00:43:49 +00:00
gingerBill
c26cb470a2 Fix LLVM-API type cycle for procedures of named procedures 2020-11-09 10:27:27 +00:00
gingerBill
44baf56d62 Fix cyclic check in is_type_polymorphic 2020-11-08 23:54:09 +00:00
gingerBill
4629754f7c Inline asm expression (-llvm-api)
See https://llvm.org/docs/LangRef.html#inline-assembler-expressions
Example:
```
x := asm(i32) -> i32 {
    "bswap $0",
    "=r,r",
}(123);
```
Allowed directives `#side_effect`, `#align_stack`, `#att`, `#intel` e.g. `asm() #side_effect #intel {...}`
2020-10-24 16:32:37 +01:00
gingerBill
feeb342c00 Improve multiple return value copy-elision 2020-10-20 17:08:55 +01:00
gingerBill
f8e697dbbb Fix indirect selector bug with using on offset_of 2020-10-15 14:58:57 +01:00
gingerBill
609af3a651 Fix and clean up default procedure parameter code for non-constant types 2020-09-22 12:06:05 +01:00
gingerBill
c1149dbdee Update math and math/linalg; add "pure_none" calling convention 2020-09-10 15:00:19 +01:00
gingerBill
d31c63c0ae Fix #714 2020-08-27 00:11:02 +01:00
gingerBill
c18fc2da9f Remove some dead code 2020-07-14 16:36:33 +01:00
gingerBill
4533c02cc7 Improve intrinsics.type_is_simple_compare 2020-06-12 14:37:27 +01:00
gingerBill
4acae2af44 Add support for using on relative pointers #670 2020-06-10 14:25:11 +01:00
gingerBill
6b3ee447f0 Basic cross compilation support 2020-06-10 12:26:31 +01:00
gingerBill
1a0614b0d7 Improve performance of tokenization and parsing 2020-05-27 18:23:37 +01:00
gingerBill
e1bdaa981a Relative pointer and relative slices 2020-05-15 18:45:24 +01:00
gingerBill
ff92eb9112 Relative pointers 2020-05-15 17:37:00 +01:00
gingerBill
e27f5796d6 Add experimental atom op tables for llvm-backend 2020-05-02 18:45:57 +01:00
gingerBill
eb2b3572bb Move TypeProc outside 2020-05-02 11:59:43 +01:00
gingerBill
f63b9806d2 LLVM API: Fix compound literals with constant parameters to union fields 2020-04-25 14:45:34 +01:00
gingerBill
97f7a558fa #optional_ok tag for procedures 2020-04-19 21:45:04 +01:00
gingerBill
f229084baa Basic polymorphic named procedure parameters for procedures and records 2020-04-13 15:48:56 +01:00
gingerBill
f09b6a4c90 Simplify compiler's Map and create a StringMap specifically for strings 2020-04-13 13:02:30 +01:00
gingerBill
90593fe6ae Endian specific floating point types (e.g. f32be) 2020-04-11 21:34:55 +01:00
gingerBill
1b3ee7153c Fix #599 - llvm-api GEP for structs with custom alignment 2020-03-28 16:08:14 +00:00
gingerBill
5cbb266ef5 Change behaviour of switch v in &value to make v have by-reference semantics 2020-03-24 14:29:54 +00:00
gingerBill
0f399a7294 Add union #maybe 2020-02-01 11:10:28 +00:00
gingerBill
c3a8e232a5 Add new intrinsics for polymorphic records:
type_is_specialized_polymorphic_record, type_is_unspecialized_polymorphic_record, type_polymorphic_record_parameter_count, type_polymorphic_record_parameter_value
2020-01-18 11:27:41 +00:00
gingerBill
ba85e432e7 Fix Proc Type ABI printing on System V 2020-01-12 13:43:45 +00:00
gingerBill
16a7c55334 Add x y z w fields to quaternion types; Improve linalg quaternion mathematics 2020-01-01 16:14:00 +00:00
gingerBill
f99f351e01 Add constant literal expressions 2019-12-27 15:49:52 +00:00
gingerBill
880c7f01a8 Fix array lengths with enum value counts. 2019-12-27 13:55:18 +00:00
gingerBill
10f0961184 Enumerated arrays [Enum_Type]Elem_Type 2019-12-27 12:51:02 +00:00
gingerBill
995ba0df9a Fix using on array in struct 2019-12-21 14:42:08 +00:00
gingerBill
7fbe0a6f23 Fix nil comparisons for soa slices and dynamic arrays 2019-12-01 11:56:08 +00:00
gingerBill
2c5a84bb78 #soa[]Type (Experimental) 2019-11-21 00:07:21 +00:00
gingerBill
e01d8a04a9 Fix String causes a crash when used in a polymorphic type #483 2019-11-20 22:07:12 +00:00
gingerBill
44e0e96612 Prepare SOA Struct code for slices and dynamic arrays *to be implemented* 2019-11-19 23:54:36 +00:00
gingerBill
0839dccfdc Fix Compiler panic with SIMD Vector debug information #481 2019-11-19 23:24:49 +00:00
gingerBill
ebf7926fa4 SOA support of Structures and Arrays; Runtime information for SOA structs; fmt printing support for SOA structs 2019-11-03 00:32:22 +00:00
gingerBill
dfb3101ecf SOA Struct support intrinsics.soa_struct 2019-11-02 21:08:51 +00:00
gingerBill
ee8d3e03f8 Delay determination of procedure abi types until as late as possible to prevent type undetermination in self-referential data types #454 2019-10-31 18:25:39 +00:00
gingerBill
2a6d9e8927 #panic; Minor change to demo.odin; Fix #assert bug at file scope 2019-10-13 12:38:23 +01:00