Jacob Young
6577f52614
llvm: convert vector reduction intrinsics
...
Scratch that thing I said about one pass. :)
2023-08-08 21:32:50 -04:00
Jacob Young
e1efd4d3c2
Builder: simplify intrinsic table
...
This format removes back-references allowing it to be parsed in a single
pass. It also reduces the number of kinds, simplifying the code.
2023-08-08 21:32:50 -04:00
Jacob Young
5b79f08ee8
llvm: finish converting attributes to use Builder and the C LLVM API
2023-08-08 21:32:50 -04:00
Jacob Young
b63d9745b5
llvm: convert intrinsics to using Builder
2023-08-08 21:32:50 -04:00
Jacob Young
3ebf8ce970
Builder: fix builtin pseudo-instruction dumping
2023-08-08 21:32:50 -04:00
Jacob Young
f938404a45
Builder: fix attribute spacing
2023-08-08 21:32:50 -04:00
Jacob Young
1c7798a3cd
Merge pull request #16705 from antlilja/builder-intrinsics
...
Implement more intrinsics in new LLVM IR builder API and remove uses of LLVM owns API
2023-08-05 23:05:02 -04:00
Robin Voetter
68f84964b3
llvm: add const addrspace cast
2023-08-05 17:11:57 -07:00
antlilja
86f61a9d26
Implement bitop intrinsics in new LLVM IR builder
...
* llvm.bitreverse
* llvm.bswap
* llvm.ctpop
* llvm.ctlz
* llvm.cttz
2023-08-06 01:46:57 +02:00
antlilja
63dcffdf9f
Implement fp intrinsics in new LLVM IR builder
...
Intrinsics implemented
* llvm.ceil
* llvm.cos
* llvm.exp
* llvm.exp2
* llvm.fabs
* llvm.floor
* llvm.log
* llvm.log10
* llvm.log2
* llvm.round
* llvm.sin
* llvm.trunc
* llvm.fma
2023-08-06 01:46:51 +02:00
Jacob Young
9e0a34f329
llvm: fix data layout calculation for experimental llvm targets
...
Closes #16616
2023-08-01 19:20:22 -07:00
Jacob Young
125b453c58
llvm: fix SysV C abi for structs smaller than two eightbytes
...
Closes #16038
Closes #16288
2023-07-28 19:27:08 -04:00
Andrew Kelley
6cee98eb30
frontend: forbid packed and extern tuples
2023-07-25 21:45:33 -07:00
Jacob G-W
3c08fe931a
make @typeInfo not return private decls
...
fixes #10731
Thanks @nektro for previous work in #14878
This change creates a small breaking change:
It removes the `is_pub` field of a decl in `@typeInfo`
2023-07-25 16:19:08 -07:00
Jacob Young
3fc2e36de2
llvm: convert global assembly
2023-07-23 23:48:19 -04:00
Jacob Young
533111e849
llvm: convert inline assembly
...
Also, implement TODOs from a previous commit.
2023-07-23 23:48:19 -04:00
Jacob Young
aa44f8f0fd
llvm: convert attributes and non-intrinsic calls
2023-07-23 23:48:18 -04:00
Andrew Kelley
a2d81c547c
llvm: fix building for 32-bit targets
2023-07-21 16:37:50 -07:00
Jacob Young
4d31d4d875
llvm: cleanup LLVM IR dumping
2023-07-20 02:44:40 -04:00
Jacob Young
a1062c63ca
llvm: add Builder trailing extra interface
2023-07-20 01:48:50 -04:00
Jacob Young
ea72fea1a4
llvm: fix bootstrap
2023-07-19 23:39:42 -04:00
Jacob Young
9dd7a9eb02
llvm: fix various crashes
2023-07-19 23:38:40 -04:00
Jacob Young
9c4d5e64b4
llvm: minor fixes
2023-07-19 23:38:40 -04:00
Jacob Young
9afb349aba
llvm: convert most instructions
2023-07-19 23:38:40 -04:00
Jacob Young
ef84e86992
llvm: convert cursor positioning
2023-07-19 23:38:40 -04:00
Jacob Young
3f46e747a8
llvm: convert basic block creation
2023-07-19 23:38:40 -04:00
Jacob Young
8fde3a8f04
llvm: finish converting constants
2023-07-19 23:38:40 -04:00
Jacob Young
1f8407c356
llvm: cleanup management and implement more const functions
2023-07-19 23:38:40 -04:00
Jacob Young
7ec7fe5359
llvm: cleanup init
2023-07-19 23:38:40 -04:00
Jacob Young
ff8a49448c
llvm: finish converting lowerValue
2023-07-19 23:38:40 -04:00
Jacob Young
2cb52235b9
llvm: convert all calls to constInt
2023-07-19 23:38:40 -04:00
Jacob Young
65fd401c06
llvm: remove more usages of llvm.Type
2023-07-19 23:38:40 -04:00
Jacob Young
d167bd4b56
llvm: finish converting lowerType
2023-07-19 23:38:40 -04:00
Jacob Young
3314fd83af
llvm: compute data layout without help like a grownup compiler
2023-07-19 23:38:40 -04:00
Jacob Young
d195173ba2
llvm: start tracking more things without relying on the llvm api
2023-07-19 23:38:40 -04:00