Commit Graph
100 Commits
Author SHA1 Message Date
gingerBill 17bbb48d8a Warn on redundant auto_cast, and make an error on -vet 2021-04-22 17:36:28 +01:00
gingerBill ac53577e9b Improve auto_cast logic 2021-04-22 17:29:48 +01:00
gingerBill 896057b5a7 Reuse unused 'context' variables to minimize stack usage (-llvm-api) 2021-04-22 16:56:02 +01:00
gingerBill 01db195b47 Make main calling convention "odin" rather than "contextless" to simplify code generation 2021-04-22 16:26:28 +01:00
gingerBill d33350e3a5 Add truncate_to_byte and truncate_to_rune for packages strings and bytes 2021-04-22 15:49:10 +01:00
gingerBill 8a86c4c7cc Remove old code 2021-04-22 14:24:30 +01:00
gingerBill 1c9f48031d Change function pass manager passes 2021-04-22 13:54:26 +01:00
gingerBill 7fcd5ecbd5 Change how lb_populate_function_pass_manager works by using the default LLVM passes when not using minimal optimizations 2021-04-22 12:35:01 +01:00
gingerBill b68b090f13 Add intrinsics: overflow_add, overflow_sub, overflow_mul; Change byte swap behaviour in -llvm-api to be the same as the intrinsic 2021-04-22 11:33:46 +01:00
gingerBill 542098dc6f Add intrinsics: byte_swap (integers and floats); count_ones; trailing_zeros; reverse_bits 2021-04-22 11:06:16 +01:00
gingerBill 0a66f8c9a3 Remove intrinsics.x86_mmx type 2021-04-22 10:39:20 +01:00
gingerBill 158e4c0b6c Add @(cold) tag 2021-04-22 10:35:37 +01:00
gingerBill 47c7dc6a9b Add new intrinsics: debug_trap, trap, read_cycle_counter, expect 2021-04-22 10:35:17 +01:00
gingerBill 65551ba8fb Add optimization_mode attribute for procedures
Allowed modes: "none", "minimal", "size", "speed"
Currently: none == minimal and size == speed
2021-04-22 00:04:47 +01:00
gingerBill c7d92562c2 Fix typo 2021-04-21 23:40:19 +01:00
gingerBill 5b3802b8ca Add new -o:<string> flag as an alternative to -opt:<integer> 2021-04-21 23:39:48 +01:00
gingerBill 2fb0383e82 Add -build-mode:llvm-ir for -llvm-api backend 2021-04-21 23:25:08 +01:00
gingerBill 8077d5f565 Merge branch 'master' of https://github.com/odin-lang/Odin 2021-04-21 10:52:34 +01:00
gingerBill 6b45856e81 Remove useless error message for constant binary expressions with non-constant operations 2021-04-21 10:52:26 +01:00
gingerBill e9b1d4f633 Fix #906 2021-04-20 10:34:41 +01:00
gingerBill ba9f0dd553 Hack ABI for windows passing pointers to structures 2021-04-19 23:03:22 +01:00
gingerBill c3b3194a00 Update builtin procedures to support the new allocator features (without breaking other code) 2021-04-19 22:44:20 +01:00
gingerBill 201cad51a9 Fix typo 2021-04-19 22:41:52 +01:00
gingerBill d21e522208 Add code that was accidentally removed 2021-04-19 22:35:59 +01:00
gingerBill f1bdd2e60f Improve #optional_ok logic for procedures; Add #optional_second for package runtime usage 2021-04-19 22:31:14 +01:00
gingerBill 0eb75886d1 Allow assignment of procedure calls with #optional_ok to single values 2021-04-19 16:02:36 +01:00
gingerBill 3612569624 Allow casting of #optional_ok call expressions 2021-04-19 15:46:12 +01:00
gingerBill c83d13d0cb Fix update_expr_type behaviour, along with fixing procedure groups updating the proc expr type 2021-04-19 15:12:10 +01:00
gingerBill f98c4d6837 Improve the Allocator interface to support returning Allocator_Error to allow for safer calls
Virtually all code (except for user-written custom allocators) should work as normal. Extra features will need to be added to make the current procedures support the `Allocator_Error` return value (akin to #optional_ok)
2021-04-19 12:31:31 +01:00
gingerBill a4d0092b16 Remove temporary reference types 2021-04-19 11:02:09 +01:00
gingerBill eb49b5f84a Fix override_entity_in_scope behaviour to correctly to report the changes upstream better 2021-04-19 11:01:00 +01:00
gingerBill ae04af4e4e Add package flags 2021-04-18 20:19:03 +01:00
gingerBill 3baddd4116 Improve init_string determination for constants 2021-04-18 20:13:20 +01:00
gingerBill 6ae468828c Improve odin-doc type information for Named types by storing the base type 2021-04-18 19:59:24 +01:00
gingerBill b59e110fec Add calling_convention to Type 2021-04-18 19:26:36 +01:00
gingerBill 4282688e60 Add calling_convention to odin-doc Type format 2021-04-18 19:26:21 +01:00
gingerBill 9b3fb25a41 Fix enumerated arrays for .odin-doc 2021-04-18 19:15:14 +01:00
gingerBill 2ce9873464 Remove dead comment 2021-04-18 18:53:19 +01:00
gingerBill 986844a0f0 Change elem_counts to i64le from u64 2021-04-18 18:48:56 +01:00
gingerBill 7c1f538c02 Change u32 to u32le 2021-04-18 18:46:29 +01:00
gingerBill 2f1c896290 Add -doc-format command for the new .odin-doc file format (to be used to generate documentation tools) 2021-04-18 18:33:15 +01:00
gingerBill 8827818b1d Clean-up fallback io.read_at and io.write_at behaviour 2021-04-14 21:25:46 +01:00
gingerBill e19958152a Fix floattidf 2021-04-14 20:45:05 +01:00
gingerBill 05a181d719 Fix style issues; Use new attribute @(cold) where appropriate in the new sync package 2021-04-14 20:19:02 +01:00
gingerBill d24784074c Add extra error to io.Error 2021-04-14 20:17:54 +01:00
gingerBill cd2476e084 Add buffer_read_at buffer_write_at 2021-04-14 20:13:26 +01:00
gingerBill ebbc33fdb5 Mockup of the new package os interface (incomplete and non-functioning) 2021-04-14 19:39:12 +01:00
gingerBill 3a4373641b Correct call site attributes 2021-04-14 17:16:10 +01:00
gingerBill 9adec628c1 Add @(cold) attribute to procedure declarations 2021-04-14 17:15:28 +01:00
gingerBill d602709133 Fix typo 2021-04-14 12:14:44 +01:00
gingerBill 8e1120bc09 Fix typo 2021-04-13 19:23:12 +01:00
gingerBill ebed29fc09 Revert *nix thread stuff to old sync
(I was just testing)
2021-04-13 19:09:04 +01:00
gingerBill bee8beb2c9 Default to pthreads in sync2 for *nix 2021-04-13 19:04:44 +01:00
gingerBill 12296a0dcc Allow intrinsics entities to be exported from other packages if wanted 2021-04-13 18:57:47 +01:00
gingerBill 2b36069924 Fix typo 2021-04-12 17:13:05 +01:00
gingerBill 4fb4ada2c7 Update sync2 to just use atomic intrinsics rather than the parapoly wrappers 2021-04-12 15:22:40 +01:00
gingerBill e3ee005404 Clean up path_unix.odin to make it not depend on package os 2021-04-11 19:05:01 +01:00
gingerBill e8bf1f2064 Minor fixes to platform checking code 2021-04-11 18:59:54 +01:00
gingerBill 1156bd9dd0 Remove thread stuff from sync2; Cleanup package thread 2021-04-11 18:25:56 +01:00
gingerBill 52c193316b Add Thread stuff to new sync package 2021-04-11 15:36:55 +01:00
gingerBill 2db1fe7429 New redesign of core:sync (stored under core:sync/sync2 for the time being) 2021-04-11 15:18:28 +01:00
gingerBill 2d99a348b8 Fix proc literal bug not finding the associated DeclInfo 2021-04-09 11:27:44 +01:00
gingerBill 18ab7fb68b Add break; for sanity 2021-04-08 15:32:59 +01:00
gingerBill 3eaf3327d4 Add "Dwarf Version" metadata for darwin on -llvm-api 2021-04-08 15:06:23 +01:00
gingerBill d721ffa6fa Add assertion check on parameter types for lb_emit_call_internal 2021-04-06 11:26:57 +01:00
gingerBill 535048e2b3 Fix LLVMConstIntOfArbitraryPrecision usage for a pointer 2021-04-06 11:07:05 +01:00
gingerBill 19470683e7 Add runtime.extendhfsf2 to dependency list 2021-04-05 18:57:09 +01:00
gingerBill 394e4fcbad Add __extendhfsf2 for macOS 2021-04-05 18:44:08 +01:00
gingerBill f78b2a6090 Undo fix 2021-04-03 18:04:39 +01:00
gingerBill 46bf39cae1 Fix lb_emit_array_ep 2021-04-03 18:03:36 +01:00
gingerBill 46c5c7d1ec Experiment with different opt passes 2021-04-01 23:41:01 +01:00
gingerBill bcda9ddee7 Add core:math/fixed 2021-04-01 17:09:34 +01:00
gingerBill 4a66cbb1f4 Fix signed fixed arithmetic intrinsics 2021-04-01 17:08:34 +01:00
gingerBill f0392d0c75 Cleanup again 2021-04-01 15:46:07 +01:00
gingerBill 3bd39886a0 Cleanup code for fixed-point intrinsics 2021-04-01 15:43:50 +01:00
gingerBill cef698afd6 Implement fixed-point arithmetic intrinsics for -llvm-api backend 2021-04-01 14:36:06 +01:00
gingerBill 0fc04a939e Add f16 support to core:math/linalg 2021-04-01 11:12:40 +01:00
gingerBill 3e1b4c17ac Fix alignment for complex32 and quaternion64 2021-04-01 11:10:17 +01:00
gingerBill b3e788b9d9 Fix missing complex32/quaternion64 checks 2021-04-01 10:56:57 +01:00
gingerBill 63bb26c0e0 Add f16 specific procedures to core:math 2021-04-01 10:52:46 +01:00
gingerBill b3dce34bc6 Add min(f16) and max(f16) support 2021-04-01 10:35:07 +01:00
gingerBill 491b282615 Add extra optimization level pass -opt:2 in lb_populate_module_pass_manager 2021-04-01 10:31:46 +01:00
gingerBill 54e6c50769 Implement f16 functionality 2021-04-01 10:06:00 +01:00
gingerBill 3359d0323a Change >> behaviour in LLVM to prevent stupid UB 2021-03-30 20:38:04 +01:00
gingerBill fbd01660ee Experiment with new grammatical parsing rule for expression level (-strict-style) idea 2021-03-30 11:48:32 +01:00
gingerBill 439e2c9242 Fix shifting limits and LLVM code gen bug relating to shifts 2021-03-29 23:15:31 +01:00
gingerBill 6fb0868517 Remove dead code and comments 2021-03-29 22:45:36 +01:00
gingerBill e1588c9322 Remove LLVMPassManagerBuilder usage in lb_populate_module_pass_manager; simplify lb_populate_function_pass_manager 2021-03-29 22:04:54 +01:00
gingerBill 8fcc6ca464 Add LLVM_USE_NO_EXTRA_PASSES build flag 2021-03-29 16:51:06 +01:00
gingerBill faa0240900 Change how lb_populate_module_pass_manager handles the LLVMPassManagerBuilder calls 2021-03-29 16:40:39 +01:00
gingerBill 66941aed0a Clamp maximum optimization level to 2 for -llvm-api 2021-03-29 15:51:15 +01:00
gingerBill fc8c94324e Fix typo 2021-03-29 15:43:33 +01:00
gingerBill 8c20ac1bf0 Add optional LLVM_USE_BASIC_PASSES build flag. If evaluates to a truthy value, it will be do only basic passes for -llvm-api 2021-03-29 14:55:37 +01:00
gingerBill 371094b067 Remove LLVMAddScalarReplAggregatesPass from passes 2021-03-29 14:50:09 +01:00
gingerBill c1e125a009 Change alignment of alloca to a larger one if OdinLLVMBuildTransmute requires it 2021-03-29 14:31:26 +01:00
gingerBill 48767301a4 Another minor change to OdinLLVMBuildTransmute regarding minimum source alignment 2021-03-29 14:11:02 +01:00
gingerBill 253a3edd30 Change OdinLLVMBuildTransmute when to deal with loads 2021-03-29 14:07:25 +01:00
gingerBill 8239cd34eb Issue #823 - Change semantics of disabled attribute to not evaluate any of the parameters at run time 2021-03-27 17:59:01 +00:00
gingerBill 818942b72e Minor code style change 2021-03-27 17:26:38 +00:00
gingerBill 9bac9af022 Clean up code for record type checking 2021-03-27 17:25:56 +00:00