gingerBill
bca08d3b85
Make -no-dynamic-literals the default now
2025-01-05 13:33:06 +00:00
gingerBill
a25a9e6ebe
Check for LLVM_VERSION_MAJOR >= 18
2024-09-09 14:47:44 +01:00
gingerBill
0dddd2b97e
Add internal flag
...
`-internal-fast-isel`
2024-09-09 14:39:53 +01:00
Laytan
ca6ef95b03
add support for linux_riscv64 and freestanding_riscv64
2024-08-20 14:06:40 +02:00
Laytan Laats
4d1d754cae
fix specific_union_variant in map_keyed_by_union not converting to union type
2024-07-29 02:32:13 +02:00
gingerBill
bc5b41938e
Fix #3964
2024-07-23 02:40:51 +01:00
gingerBill
7d643bcae3
Make linkage weak in certain places
2024-07-15 12:30:32 +01:00
gingerBill
549311fac9
Fix global variables being "missing" with -use-separate-modules
2024-07-15 12:21:42 +01:00
gingerBill
c5decd3eae
Fix possible race and correct linkage _after_ generation
2024-07-15 11:49:07 +01:00
gingerBill
a867378418
Default to -o:minimal again
2024-07-14 15:55:26 +01:00
gingerBill
34c6868e78
Merge pull request #3895 from laytan/fix-optimization-mode-attribute
...
remove misleading @(optimization_mode) values and make "none" inhibit optimizations
2024-07-10 13:22:57 +01:00
gingerBill
87ac68fcf2
Add -internal-cached
2024-07-08 23:39:14 +01:00
Laytan Laats
1a20b78633
remove misleading @(optimization_mode) values and make "none" inhibit optimizations
2024-07-08 21:06:57 +02:00
gingerBill
2c9ef6907a
Clean up timings messages showing used module count
2024-07-08 15:30:33 +01:00
gingerBill
2a219fa830
Correct -use-separate-module behaviour
2024-07-08 15:13:40 +01:00
gingerBill
8491e2491c
Experiment with different uses of -use-separate-modules
2024-07-08 14:48:59 +01:00
gingerBill
7dd4cccce7
Use a temporary directory for -use-separate-modules
...
Windows only currently
2024-07-08 14:21:07 +01:00
gingerBill
0f664893dd
Add sort for global types and procedures
2024-07-08 13:59:25 +01:00
Laytan Laats
b79d7e6917
disallow non-global foreign import of variables on wasm
2024-06-28 01:34:09 +02:00
Jeroen van Rijn
ed7d34beb0
Avoid sporadic wasm crash
2024-06-28 00:39:51 +02:00
gingerBill
1dc90103bd
Make verification ignorable with a define flag
2024-06-11 12:30:24 +01:00
gingerBill
0b02c67cdf
Minor clean up for backend
2024-06-11 12:19:52 +01:00
gingerBill
9b0e87544a
Unify LLVMVerifyFunction invocations into on place
2024-06-11 12:07:22 +01:00
gingerBill
9ef43fc782
Add @(rodata)
2024-06-06 15:16:34 +01:00
Laytan Laats
e3e04ffa22
llvm-18: enable sroa and static map calls
2024-05-07 16:52:46 +02:00
Laytan Laats
bb58926b7a
llvm 18: general unix and darwin specifics
2024-05-07 16:52:46 +02:00
Laytan Laats
25f1d0906d
compiler: improve target features support
2024-05-02 00:59:52 +02:00
gingerBill
2416380f34
Enforce as global constant
2024-04-18 12:56:18 +01:00
Laytan Laats
9647cb74ad
debug info fixes/refactor
...
This fixes (on my end) #3340 , #3117 , #2945 , #2922 , and #2762
A general refactor of debug info generation in order to fix issues and
increase stability.
What I believe is the root cause of a bunch of issues is that we use the
temporary metadata/forward declarations too much (/ hold onto them for
too long). It seems to cause problems with the reference counting inside
LLVM.
This PR reduces the use of these forward declarations to a minimum, it
creates it, fills in the fields, and resolves it, instead of waiting
until the end of generating code.
Some smaller issues I came across have also been solved.
2024-04-01 16:28:44 +02:00
gingerBill
433109ff52
Replace gb_exit(1) with exit_with_errors() where appropriate
2024-03-19 16:29:45 +00:00
gingerBill
9a2fc6cf4c
Serialize errors to make them sortable, deterministic, and generally more control
2024-03-19 15:34:29 +00:00
avanspector
5d6b4eda1e
Merge branch 'odin-lang:master' into haiku
2024-02-29 03:16:04 +01:00
gingerBill
5107bdc06b
Make lb_type_info use a procedure to load the global value
2024-02-27 15:45:53 +00:00
gingerBill
c6ee025063
Add type info generation for bit_field
2024-02-27 15:27:51 +00:00
gingerBill
826cf1508b
Remove __$startup_type_info procedure
2024-02-27 15:09:33 +00:00
gingerBill
51edf01162
Change type info table to be initializable constantly
...
[]Type_Info -> []^Type_Info
2024-02-27 15:07:55 +00:00
avanspector
0a6673220b
Merge branch 'haiku' of https://github.com/avanspector/Odin into haiku
2024-02-25 02:24:58 +01:00
avanspector
88add0b6b1
Improve Haiku support
2024-02-25 02:24:52 +01:00
gingerBill
a4b8c1ea17
Begin work adding bit_field
2024-02-22 15:55:54 +00:00
gingerBill
abaa906f34
Fix lb_hasher_proc_for_type
2024-02-07 11:05:38 +00:00
gingerBill
cec08114fd
Mock out comments
2024-02-02 14:57:22 +00:00
codename-irvin
76f52dd6c9
Add freestanding aarch64 target
2024-01-15 19:49:34 -05:00
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