Commit Graph
100 Commits
Author SHA1 Message Date
gingerBill 04be6d190e Minor fix to OdinLLVMBuildTransmute 2021-03-25 20:45:22 +00:00
gingerBill 6668fd44cf Merge branch 'master' of https://github.com/odin-lang/Odin 2021-03-25 20:23:49 +00:00
gingerBill 0007ac63ed Correct #c_vararg behaviour on -llvm-api 2021-03-25 20:23:43 +00:00
gingerBill 7c951cbf0a Add SOA struct len/cap/allocator fields for the debug symbols 2021-03-24 23:12:54 +00:00
gingerBill 2d0e2625ac Ensure pointers are of the same type in LLVM ICmp 2021-03-24 23:01:48 +00:00
gingerBill 1aecd7f5ff Add support for soa slice reference iteration 2021-03-24 22:39:29 +00:00
gingerBill 5faf859a56 Support using on intermediate soa field value from a for-in statement 2021-03-24 22:34:55 +00:00
gingerBill 7028797d53 Implement soa_unzip 2021-03-24 19:29:25 +00:00
gingerBill 6c9d3715d8 Add type hinting to soa_zip 2021-03-24 18:08:34 +00:00
gingerBill 989a03dc77 soa_zip (-llvm-api only): creates an #soa[]struct from passed slices
x := []i32{1, 3, 9};
y := []f32{2, 4, 16};
z := []b32{true, false, true};

s_anonymous := soa_zip(x, y, z);
assert(s_anonymous[0]._1 == 2);

s_named := soa_zip(a=x, b=y, c=z);
assert(s_anonymous[0].b == 2);
2021-03-24 17:33:05 +00:00
gingerBill a5329ae48c Add better package declaration specific error message (#878) 2021-03-24 14:34:30 +00:00
gingerBill 2ec3326653 Support #soa array iteration in a for in loop for -llvm-api backend only 2021-03-24 14:31:44 +00:00
gingerBill bec42e8dd3 Improve core:odin/ast ast.Range_Stmt to use generic number of vals rather than the fixed two to aid with parsing errors 2021-03-24 12:34:06 +00:00
gingerBill d969d0b264 Make for in logic a bit more generic 2021-03-24 12:31:05 +00:00
gingerBill 0e3ecc350a Make the parser support as many identifiers on the LHS in for in loops to improve error messages 2021-03-24 12:11:00 +00:00
gingerBill 295c1550a8 Support using variables in debug information 2021-03-24 10:57:00 +00:00
gingerBill fc1a352285 For bit_set, allow + and - to be aliases for | and &~, respectively 2021-03-23 23:34:01 +00:00
gingerBill 082381284c Remove dead code 2021-03-23 23:23:40 +00:00
gingerBill ccd078620b Improve error message in parser 2021-03-23 23:05:00 +00:00
gingerBill 08f7d3edbe Allow $ in polymorphic record parameter fields (but disallow mixing) 2021-03-23 22:59:10 +00:00
gingerBill c62980eaea Minor improvement to error message about assigning a type to a variable with no inference 2021-03-23 22:33:32 +00:00
gingerBill d88d6a1fdd bit_set support in debug symbols by treating them like a bit field of 1 bit booleans 2021-03-23 22:09:16 +00:00
gingerBill f1e13bdddb Prefix named types with package name in debug types 2021-03-23 20:45:39 +00:00
gingerBill 331167e91f Improve debug type names for composite types (arrays, map, struct, union) 2021-03-23 20:41:49 +00:00
gingerBill e229882fde Clean up some debug type code 2021-03-23 19:33:22 +00:00
gingerBill 300f988905 Add global variables to -llvm-api debug information 2021-03-23 18:34:20 +00:00
gingerBill 7f6a43f0af Move LLVM optimization procedures to a separate file to aid with organization 2021-03-23 18:24:49 +00:00
gingerBill ccd91aee5c Fix debug information for typeid on -llvm-api 2021-03-22 16:14:58 +00:00
gingerBill bf46a3f1d3 Correct debug info for basic composite types (e.g. string, any) 2021-03-22 15:36:18 +00:00
gingerBill 8ab1b32fe1 Add local debug variable support for -llvm-api 2021-03-22 14:51:19 +00:00
gingerBill 0355908af8 Start work on very basic LLVM debug type information 2021-03-22 13:09:23 +00:00
gingerBill fd7d70954e Begin integrating work from branch llvm-debug-symbols 2021-03-20 13:10:53 +00:00
gingerBill cb0bd80f50 Fix LLVMConstArray usage 2021-03-19 16:59:46 +00:00
gingerBill 5a67e6ecbd Fix LLVM asserts 2021-03-19 16:53:22 +00:00
gingerBill c8a823a387 Add ExternC.h 2021-03-19 15:49:07 +00:00
gingerBill 178e891c78 Fix some LLVM asserts by using LLVMConstNamedStruct everywhere 2021-03-19 15:47:10 +00:00
gingerBill bda9eb7348 Update llvm-c headers for Version 11.0.1 2021-03-19 15:46:33 +00:00
gingerBill 3337412228 split*_iterator procedures for package bytes and strings 2021-03-18 13:26:33 +00:00
gingerBill e3f9d99a3b Merge branch 'master' of https://github.com/odin-lang/Odin 2021-03-18 13:25:47 +00:00
gingerBill 359ae29d98 Minor fixes 2021-03-18 13:25:41 +00:00
gingerBill 04e0cacd30 Update package core:math/linalg to support matrix3 euler angle operations 2021-03-16 12:14:54 +00:00
gingerBill b94ab4dc05 Make check_single_global_entity use create_checker_context 2021-03-15 14:05:38 +00:00
gingerBill f5142aaec4 Change from test_* prefix to @(test) attribute for odin test 2021-03-14 18:43:21 +00:00
gingerBill db0ac2ba98 Add "NO TESTS RAN" message to testing.runner if no tests were ran 2021-03-14 18:17:00 +00:00
gingerBill 468ad4837b Add pkg field to testing.Internal_Test 2021-03-14 18:15:08 +00:00
gingerBill 2aa588209e odin test to work with the new core:testing package 2021-03-14 18:01:31 +00:00
gingerBill 10f91a0d3f Make base32 and base64 adhere to -strict-style 2021-03-14 12:54:28 +00:00
gingerBill 8cc4cba06c Add support for backslash \ to consume a newline 2021-03-14 12:53:57 +00:00
gingerBill 8f6439fa6b Simplify expect_semicolon_newline_error rule 2021-03-13 23:17:56 +00:00
gingerBill 81efd2dc64 Remove && false from test code 2021-03-13 21:39:33 +00:00
gingerBill b5c0c68615 Add -strict-style flag: Enforces code style stricter whilst parsing, requiring such things as trailing commas 2021-03-13 21:20:46 +00:00
gingerBill a60d22fefd Make trailing comma usage consistent 2021-03-13 21:18:07 +00:00
gingerBill 8123ff83a3 Fix is_diverging_stmt for invalid statements 2021-03-13 15:01:23 +00:00
gingerBill 4e2a2ac80a Fix formatting of code 2021-03-10 10:53:30 +00:00
gingerBill 84bb349900 Merge branch 'master' of https://github.com/odin-lang/Odin 2021-03-09 11:40:42 +00:00
gingerBill 3ff7bded64 Add intrinsics.volatile_store and intrinsics.volatile_load 2021-03-09 11:40:36 +00:00
gingerBill 083cec6c88 Remove dead code 2021-03-06 16:11:54 +00:00
gingerBill 45cd5c0b1c Remove test code 2021-03-06 16:11:39 +00:00
gingerBill 572b9d1b3f Fix context bug with deferred_* attributes which caused a new context to be created every time 2021-03-06 16:11:01 +00:00
gingerBill 0ae1b96182 Fix ir_print.cpp i32 line/column values 2021-03-05 15:42:59 +00:00
gingerBill 1988856eed Minimize the size of runtime.Source_Code_Location to use i32 instead of int 2021-03-05 12:56:36 +00:00
gingerBill 15dbc99cb9 Minimize TokenPos size by using i32 for line/column/offset and file_id instead of String
To make `i32` safe, the parser limits the file size of odin files to a maximum of 2GiB (which will be good enough for the vast vast majority of cases)
2021-03-04 16:45:30 +00:00
gingerBill 17eb0ce525 Minor update to math/linalg 2021-03-03 22:18:18 +00:00
gingerBill 619a977856 Improve math/linalg to support both f32 and f64 basic procedures for the specific*.odin files 2021-03-03 16:44:41 +00:00
gingerBill b727b6438b Minimize unneeded casts 2021-03-03 14:31:17 +00:00
gingerBill 75f127af7c Add -vet-extra (checks for unneeded casts and transmutes) 2021-03-03 14:17:48 +00:00
gingerBill c2794b62a9 Clean up logic for << and >> behaviour 2021-03-02 16:48:39 +00:00
gingerBill 4e63ab5edc Re-enable "LLVM Function Pass" 2021-03-02 13:36:57 +00:00
gingerBill 2a1bec9fbb Clean up lb_end_procedure_body logic 2021-03-02 00:43:25 +00:00
gingerBill 6faf024ab4 Remove unneeded return value from incl and excl 2021-03-02 00:40:40 +00:00
gingerBill 35edf45514 Add make_soa and delete_soa; Reorganize soa procedures into a separate file 2021-03-01 18:07:09 +00:00
gingerBill 667aa3671e Fix Addressing for SOA on store; Add intrinsics.type_struct_field_count(T) 2021-03-01 17:54:49 +00:00
gingerBill b428e9ee14 Improve lb_end_procedure_body logic 2021-03-01 15:14:21 +00:00
gingerBill 868117cddd Remove hack in lb_addr_store 2021-03-01 12:59:17 +00:00
gingerBill 9e0210f7f6 Merge branch 'master' of https://github.com/odin-lang/Odin 2021-03-01 12:15:38 +00:00
gingerBill 302742689b Patch win64 ABI problem caused by a bug in LLVM for 128 bit integers 2021-03-01 12:15:28 +00:00
gingerBill 6ffb4d2683 Minor changes to function pass manager in llvm_backend.cpp 2021-02-27 17:47:57 +00:00
gingerBill 4f298a5314 Fix LLVM -opt:2 bug for initializing global variables 2021-02-27 15:54:22 +00:00
gingerBill a2557142cc Update package os for package path/filepath support on macOS 2021-02-27 11:30:43 +00:00
gingerBill fa09640e7e Fix slice.concatenate 2021-02-27 10:58:10 +00:00
gingerBill 1f9a2df42b Fix crash when a forced dependency doesn't exist 2021-02-27 10:57:44 +00:00
gingerBill ee04dde7c2 HACK check_unchecked_bodies further! 2021-02-26 15:34:12 +00:00
gingerBill 88599eeac1 Update build-m1.sh to remove unneeded macro define 2021-02-26 15:29:41 +00:00
gingerBill 54194af71c Fix patch (yeah... I know) 2021-02-26 15:29:10 +00:00
gingerBill 575c7ff031 Patch issue with minimum dependency system and how it interacts with para poly procedures 2021-02-26 15:09:32 +00:00
gingerBill ac155d9036 Merge branch 'master' of https://github.com/odin-lang/Odin 2021-02-26 10:56:40 +00:00
gingerBill d772710ae7 Add message to assert in ir_build_expr_internal 2021-02-26 10:56:32 +00:00
gingerBill d0ac9f605d Merge branch 'master' of https://github.com/odin-lang/Odin 2021-02-25 13:17:07 +00:00
gingerBill 3eae69effc Make USE_NEW_LLVM_ABI_SYSTEM the actual behaviour and remove the previous approach 2021-02-25 13:17:00 +00:00
gingerBill 84deee75cc Make lb_create_enum_attribute ignore certain attributes (they are not properly supported by the actual LLVM C API) 2021-02-25 11:39:46 +00:00
gingerBill 82275082ff Add #force_inline parsing directly to expression statements 2021-02-25 10:01:12 +00:00
gingerBill fc48e9638a Merge branch 'master' of https://github.com/odin-lang/Odin 2021-02-25 09:55:56 +00:00
gingerBill 4a69bfada1 Remove #force_inline for and only have #unroll for 2021-02-25 09:55:48 +00:00
gingerBill 4d13a43590 Enforce -llvm-api on Mac M1 2021-02-25 00:39:44 +00:00
gingerBill b2fdb53e26 fix timings.cpp for M1 2021-02-25 00:39:26 +00:00
gingerBill 58422711d1 Remove sret attribute in llvm_abi.cpp 2021-02-25 00:22:47 +00:00
gingerBill ba817d153c Get compiling on Mac Mini M1 2021-02-24 23:21:34 +00:00
gingerBill 2d88c6c6a5 Begin work on aarch64 ABI for -llvm-api 2021-02-24 16:49:19 +00:00
gingerBill a6fdb5eb5e Add -DUSE_NEW_LLVM_ABI_SYSTEM by default to Windows build for -llvm-api 2021-02-24 16:00:05 +00:00
gingerBill 425bb0579e Default to -microarch:generic 2021-02-24 15:59:31 +00:00