Commit Graph

270 Commits

Author SHA1 Message Date
gingerBill
afe185ee22 Fix procedure entity finding 2021-04-27 21:08:18 +01:00
gingerBill
24f2d97c0e Make atomic compare related intrinsics optional ok 2021-04-27 16:55:39 +01:00
gingerBill
e7e1866e50 Fix #893 2021-04-27 13:09:37 +01:00
gingerBill
04535b2913 Fix constant aliasing for debug information 2021-04-26 22:36:20 +01:00
gingerBill
43b55223af Merge branch 'master' into old-backend-removal 2021-04-26 11:46:58 +01:00
gingerBill
aa846d0ea5 Fix union #maybe comparison against nil -llvm-api 2021-04-26 11:46:26 +01:00
gingerBill
2691c394e0 Add intrinsics.count_zeros 2021-04-25 20:50:25 +01:00
gingerBill
7086b49ae6 Rename intrinsics to count_trailing_zeros and count_leading_zeros 2021-04-25 20:26:11 +01:00
gingerBill
72aa0e6e38 Replace many foreign llvm calls with intrinsics 2021-04-25 20:22:26 +01:00
gingerBill
6383714bff Remove old procedure ABI code 2021-04-25 19:56:46 +01:00
gingerBill
ff620422fa Fix #857 2021-04-25 19:40:02 +01:00
gingerBill
5685a8d885 Fix #911 for -llvm-api backend 2021-04-25 19:19:44 +01:00
gingerBill
2b4010998d Up ci.yml 2021-04-24 20:55:50 +01:00
gingerBill
c29b643a58 Move out some intrinsics into separate procedures in llvm_backend.cpp; Rename InlineRangeStmt to UnrollRangeStmt (eventually merge the two AST nodes) 2021-04-24 15:00:01 +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
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
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
2fb0383e82 Add -build-mode:llvm-ir for -llvm-api backend 2021-04-21 23:25:08 +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
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
e8bf1f2064 Minor fixes to platform checking code 2021-04-11 18:59:54 +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
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
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
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
439e2c9242 Fix shifting limits and LLVM code gen bug relating to shifts 2021-03-29 23:15:31 +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
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
e21d716720 Fix endian conversion to and from floats and ints 2021-03-27 14:33:33 +00:00