gingerBill
f4782157d3
Implement instrumentation pass
2024-01-07 21:34:44 +00:00
Yawning Angel
cd65a15d81
src: enable_target_feature should add features, not overwrite
...
`llvm_features` being empty is the default state, and implies the
presence of certain features.
Previously if any target features were explicitly enabled by the
`enable_target_feature` attribute, they were added comma separated
to `llvm_features`.
For example: `lzcnt,popcnt,...,sse4.2,sse`
This was causing LLVM to try to target a CPU that *ONLY* has the
explicitly enabled features. This now will prefix explicitly enabled
features with a `+`, and preserve the existing `llvm_features` string
by appending to it if it is set.
2024-01-07 20:04:40 +09:00
gingerBill
feba52002e
Reduce repetition on initializing global type info member arrays
2023-12-13 17:46:00 +00:00
Jeroen van Rijn
c5c46c5073
Silence writable string warnings when compiling Odin on Linux.
2023-12-03 18:08:18 +01:00
Jeroen van Rijn
f903951016
Facored out get_default_microarchitecture
...
Moved `generic` -> `x86-64-v2` selection into its own procedure so that `llvm_backend.cpp` and `main.cpp` can share the same logic.
2023-11-10 20:14:00 +01:00
Jeroen van Rijn
e19460cbd7
Add -microarch:?
2023-11-10 19:37:08 +01:00
Laytan
9b68671082
Fix empty pass because of trailing comma
2023-10-31 19:29:54 +01:00
gingerBill
b7af4e7f6b
Explicitly write out the passes for each level and remove certain passes
2023-10-30 12:31:24 +00:00
gingerBill
61ad2a1345
TEST: Add sroa passes back
2023-10-29 20:45:19 +00:00
gingerBill
f54a026acc
Remove trailing comma
2023-10-29 20:33:29 +00:00
gingerBill
fc06d7011d
Use default passes without coro, openmp, and sroa passes
2023-10-29 20:31:53 +00:00
gingerBill
ed7c9ec619
Test: use custom passes for -o:speed
2023-10-29 20:13:03 +00:00
gingerBill
034aead930
Only make static map get calls inlineable outside of debug builds
2023-10-27 14:55:54 +01:00
gingerBill
c8a5bafc6b
Fix static map calls and default to them!
2023-10-27 14:53:48 +01:00
gingerBill
bc0fa1240b
Disable using giant packed struct for type info table for the time being
2023-10-27 13:03:21 +01:00
jcmdln
bd86cb22e0
Support LLVM >=17.0.1 on Darwin and Linux
2023-10-11 21:06:42 -04:00
gingerBill
c529b1b73a
Generate the global type info member values even if the count is 0
2023-09-27 11:44:29 +01:00
gingerBill
61f39ae0a0
Use a giant packed struct working for type info table
2023-09-22 15:32:32 +01:00
gingerBill
082324d7b9
Begin work on making the type info table be constantly initialized
2023-09-22 14:39:51 +01:00
gingerBill
5e99289d7a
Minor clean up
2023-09-22 12:11:39 +01:00
gingerBill
ac43dd0777
Remove debug text
2023-09-21 17:08:45 +01:00
gingerBill
963559676e
Fix build times for -o:<string> in LLVM-17
2023-09-21 16:48:00 +01:00
gingerBill
20ce8c4c51
Allow for zero passes
2023-09-21 12:45:11 +01:00
gingerBill
735bb147e2
Add asan lib for Windows
2023-09-21 11:03:25 +01:00
gingerBill
7a511308ef
Re-configure the new pass system
2023-09-21 10:54:02 +01:00
gingerBill
e82b0ea4cd
Add -o:aggressive for LLVM 17
2023-09-21 09:48:53 +01:00
gingerBill
2160484b62
Support -sanitize:<string> for address, memory, thread for LLVM 17
2023-09-21 09:40:33 +01:00
gingerBill
f0ab58dfbb
Begin work with adding the new pass system
2023-09-20 10:39:48 +01:00
gingerBill
e748d2f2af
Update to LLVM-17
2023-09-19 16:15:26 +01:00
gingerBill
15033eab28
Fix comparison of two nil unions against each other
2023-08-16 11:52:40 +01:00
Laytan Laats
3cce972125
fix indentation
2023-07-11 19:34:59 +02:00
Laytan Laats
52700d6a84
use lb_emit_select instead of lb_emit_if for exit check
2023-07-11 19:30:44 +02:00
Laytan Laats
7cdf37eaf6
exit with code 1 on odin test failure
2023-07-03 01:22:36 +02:00
gingerBill
8b8310711e
Fix #2594 zero sized union code generation
2023-06-26 17:36:27 +01:00
gingerBill
581eebb197
Fix a race condition when produced anonymous procedure literals with -use-separate-modules
2023-06-13 13:14:59 +01:00
gingerBill
296674e18b
Rename ODIN_DISALLOW_RTTI to ODIN_NO_RTTI; Remove dead command line flags
2023-06-12 14:53:05 +01:00
gingerBill
2022a7615a
Make all id suffixes use atomics where possible
2023-06-12 14:10:18 +01:00
gingerBill
dca0fae781
Improve lb_generate_anonymous_proc_lit (again)
2023-06-12 13:42:51 +01:00
gingerBill
ede9881458
Keep compilers happy
2023-06-12 12:54:36 +01:00
gingerBill
a7f8c78358
Change how "$anon" mangling works to use an atomic value instead
2023-06-12 12:52:17 +01:00
gingerBill
4a75a1e839
Merge branch 'master' into separate-int-word-sizes
2023-06-06 22:42:04 +01:00
gingerBill
3ab01dbc00
Fix type switch debug information on -o:none
2023-05-30 00:05:52 +01:00
gingerBill
c38842ecb2
Merge pull request #2535 from jasonKercher/fix2515
...
Fix #2515 - Implement backward shift on `map` on insert and reseed hashes on resize
2023-05-29 22:41:46 +01:00
gingerBill
8bf32ac697
Minor change to handling of propagation of errors with --- as a value
2023-05-22 12:53:29 +01:00
jason
a9936d1570
implement random map seed
2023-05-16 23:49:55 -04:00
gingerBill
f5d9ca64f9
Begin work on new pseudo-architecture: wasm64p32
2023-04-20 12:02:32 +01:00
gingerBill
0ec4e8d5d4
Inline static map calls for map get, and improve readability of the LLVM IR
2023-04-18 15:17:16 +01:00
gingerBill
8dc70f797c
Increase use of temporary_allocator() where possible
2023-03-16 15:16:17 +00:00
gingerBill
c1c7128634
Minimize severe memory usage by enforcing the heap_allocator() in places
2023-03-16 15:04:57 +00:00
gingerBill
94c1331c07
Implement @(fini) (opposite of @(init))
2023-02-15 11:31:51 +00:00