Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
117 check-ins using file bs/builtins/types/template/build.h version 40ccb92d8e
|
2019-08-10
| ||
| 12:56 | diagnostics: implemented the new location class, and the location manager. check-in: 179de91f52 user: achavasse tags: trunk | |
|
2019-08-09
| ||
| 20:45 | Added a location id and poison state to ir::Value. check-in: 1a6405a1c7 user: achavasse tags: trunk | |
| 19:54 | Cleanup: got rid of the half-assed location and poisoning systems in ir::Terms. check-in: aee388d9c0 user: achavasse tags: trunk | |
|
2019-08-08
| ||
| 23:24 | Implemented the assignation operator. check-in: 3a2f2c23ab user: achavasse tags: trunk | |
| 16:53 |
| |
| 14:29 | Implemented the assignment operator of an expression to a decl of the same type, which declares and initialize a local variable. check-in: 90ab7b489f user: achavasse tags: trunk | |
| 09:59 | Implemented the localvar builtin type. check-in: 3e177bc8cf user: achavasse tags: trunk | |
|
2019-08-07
| ||
| 19:31 | Cleanup: removed an unused file. check-in: 45f56c570b user: achavasse tags: trunk | |
| 19:10 | llr, execute, codegen: implemented the SetVar instruction. check-in: a7d4b38ca5 user: achavasse tags: trunk | |
| 17:29 | llr, execute, codegen: implemented the AllocVar and GetVar instructions. check-in: b0b8db5e09 user: achavasse tags: trunk | |
| 16:07 | execute: removed the old local var functions in frame, and reimplemented them using the new temporary system. Function args are now also handled through this. check-in: 391fc3dedd user: achavasse tags: trunk | |
| 14:50 | codegen: function arguments are now stored in allocas. check-in: e15e6a6e20 user: achavasse tags: trunk | |
| 01:56 |
| |
|
2019-08-06
| ||
| 23:07 | Fixed size integers are now supported by compile time execution. check-in: 8714554a92 user: achavasse tags: trunk | |
| 22:51 | Fixed size integers can now be represented as compile time values. check-in: f469cad435 user: achavasse tags: trunk | |
| 22:22 | Renamed runtime types, because most of them (except pointers) will have to be available during compile time as well, so their names may as well be generic. check-in: fbc9052f6a user: achavasse tags: trunk | |
| 21:31 | Updated .ll codegen test files that have changed after updating llvm. check-in: 97f68b01c9 user: achavasse tags: trunk | |
| 16:17 | Cleanup: use the equality operator in tests now that it is available. check-in: 036f80c021 user: achavasse tags: trunk | |
| 16:04 | Implemented comparison operators. check-in: 56107a5d5e user: achavasse tags: trunk | |
| 15:28 | llr, execute, codegen: implemented comparison instructions. check-in: 08d543eea8 user: achavasse tags: trunk | |
| 12:15 | Implemented arithmetic operators. check-in: d2db15fbbc user: achavasse tags: trunk | |
| 11:40 | llr, execute, codegen: implemented arithmetic instructions. check-in: 270fa5b77b user: achavasse tags: trunk | |
| 00:33 |
| |
|
2019-08-05
| ||
| 21:14 | Fixed shift operators precedence. check-in: 4fe0527143 user: achavasse tags: trunk | |
| 21:04 | Implemented the shift operators. check-in: 2fdf1d1929 user: achavasse tags: trunk | |
| 20:07 | Implemented the bitwise not, bitwise and and bitwise or operators. check-in: c7acd1eba0 user: achavasse tags: trunk | |
| 19:02 | llr, execute, codegen: Implemented the And, Or, Shl, LShr and AShr instructions. check-in: c44aed7937 user: achavasse tags: trunk | |
| 17:47 | Fixed a typo. check-in: b65e87c8ce user: achavasse tags: trunk | |
| 17:46 | Implemented a wrapper around llvm::APSInt for compile time integers to manage mixing operations on integers of different bitsizes, and to automatically extend them as needed. check-in: 2bee844d3c user: achavasse tags: trunk | |
| 02:45 |
| |
|
2019-08-04
| ||
| 12:53 | logic ops: forbid xor between runtime integers of different signedness. check-in: 011df3c4d3 user: achavasse tags: trunk | |
| 00:38 | Improved the vscode syntax highlighting. check-in: e535403270 user: achavasse tags: trunk | |
| 00:04 | Apply the ct_int unification fix to ct_string unification. check-in: 5a80915ee6 user: achavasse tags: trunk | |
|
2019-08-03
| ||
| 23:38 | Fixed the ct_int unification rule, which didn't work correctly against generic function parameters. check-in: 18e3bfa195 user: achavasse tags: trunk | |
| 19:29 | Implemented the runtime bitwise xor operator. check-in: 1886f5f367 user: achavasse tags: trunk | |
| 17:16 |
| |
| 14:10 | Added support for signed runtime integers and fixed multiple issues with ct_integer to runtime integer conversion. check-in: c7b1aea0a6 user: achavasse tags: trunk | |
| 12:08 | builtins: added a mechanism to customize the patterns used to match parameter types in builtin function, to be able to create builtin generic functions. check-in: 2f3c7d306a user: achavasse tags: trunk | |
|
2019-08-02
| ||
| 23:26 | Cleanup: removed an unused method. check-in: 69d5b9d0cc user: achavasse tags: trunk | |
| 22:35 | Implemented the logic and operator. check-in: 7395ea3ffc user: achavasse tags: trunk | |
| 22:28 |
| |
| 14:32 |
| |
|
2019-08-01
| ||
| 22:49 | Implemented the logic or operator. Not functional yet due to an architectural flaw. check-in: d939807dfa user: achavasse tags: trunk | |
| 21:11 | parser: implemented ComplexValue, which is a value bundled with a CFG whose execution or insertion is a prerequisite to use the value. check-in: 79a134aa8e user: achavasse tags: trunk | |
| 20:25 |
| |
| 19:35 |
llr:
| |
| 16:35 | Cleanup: got rid of a bunch of header files that each contained only one function prototype. check-in: cc50e8025d user: achavasse tags: trunk | |
| 15:53 |
| |
| 13:53 | builtins: implemented intrinsic functions. check-in: b15874568f user: achavasse tags: trunk | |
|
2019-07-31
| ||
| 23:27 | llr, execute, codegen: implemented the Xor instruction. check-in: 5ec364bc88 user: achavasse tags: trunk | |
| 22:40 | builtins: implemented some helpers to easily create builtin operators with overloadable extension points. check-in: 39f2220e39 user: achavasse tags: trunk | |
| 19:06 | llr, execute, codegen: added the Phi instruction. check-in: 52f162f30a user: achavasse tags: trunk | |
| 17:20 | llr, execute, codegen: added the CreateTemporary instruction. check-in: 498281afd4 user: achavasse tags: trunk | |
| 16:06 | Function's llr representations lifetimes are now handled by Env, and function values only contain raw pointers to their LLR. This is to avoid leaks with recursive functions. check-in: 1effb3a67a user: achavasse tags: trunk | |
| 14:05 |
Fixed some cyclic reference issues with cyclic CFGs:
| |
| 10:10 | Small cleanup. check-in: 4464b9355c user: achavasse tags: trunk | |
| 09:35 | Created a syntax highlighting vscode extension for .em files. check-in: a311d6a33e user: achavasse tags: trunk | |
| 07:50 | Minor fixes. check-in: b288174776 user: achavasse tags: trunk | |
| 00:07 | Compile time integers are now represented with infinite precision by using llvm::APSInt. check-in: 9988bc3dc8 user: achavasse tags: trunk | |
|
2019-07-30
| ||
| 22:44 | Implemented the #if statement. check-in: 1767c5b87e user: achavasse tags: trunk | |
| 22:09 | Cleanup. check-in: 527297d900 user: achavasse tags: trunk | |
| 22:05 |
| |
| 20:20 | Implemented the if statement. check-in: 866b8caaca user: achavasse tags: trunk | |
| 14:25 | parser: setup proper visibility rules for nested brace blocks. check-in: 09150fdc1c user: achavasse tags: trunk | |
| 13:20 | sema: extended cfgbuilder to handle multiple basic blocks. check-in: d3d40f668d user: achavasse tags: trunk | |
| 12:46 | llr, execute, codegen: implemented Branch and CondBranch. check-in: 3c78ba6139 user: achavasse tags: trunk | |
|
2019-07-29
| ||
| 20:01 | Implemented the builtin bool type, cleaned up things here and there by making use of it. check-in: e6ed8750c4 user: achavasse tags: trunk | |
| 16:40 | frontend: use the source filename as the module name. check-in: 71dce5b655 user: achavasse tags: trunk | |
| 16:11 | First rudimentary version of the front-end. Added a more civilized hello world sample. check-in: c73275098a user: achavasse tags: trunk | |
| 15:50 | In preparation to implement the first version of the front end, made the current direct file execution behavior available through a special command line options, to keep the current tests working. check-in: c34657ae47 user: achavasse tags: trunk | |
| 15:35 | Builtins: added a couple of builtin utility string functions needed to bring up the frontend. check-in: de781b5a85 user: achavasse tags: trunk | |
| 14:44 | Embedded lld and added builtin functions to invoke it. The shitty hello world sample now performs all the steps to produce a functional binary. check-in: 16a9039350 user: achavasse tags: trunk | |
| 01:15 |
| |
|
2019-07-28
| ||
| 17:22 | codegen: added functions to set the target for a module, and to output a module either as an asm or as an object file. check-in: 0d6a77f7ab user: achavasse tags: trunk | |
|
2019-07-27
| ||
| 15:20 | codegen: added a function to run the LLVM optimization passes on a module (with default optimization settings for the time being). check-in: db120ccb3a user: achavasse tags: trunk | |
| 13:08 | Updated a test reference file. check-in: f93a7e7cb4 user: achavasse tags: trunk | |
| 13:04 | Implemented external runtime functions. check-in: 6a99df8278 user: achavasse tags: trunk | |
|
2019-07-26
| ||
| 23:52 |
| |
| 22:30 |
| |
| 18:33 | llr, codegen: implemented "load constant" instructions for integers and strings. check-in: 443351dafe user: achavasse tags: trunk | |
| 16:57 | codegen: generate basic blocks. check-in: 8574428775 user: achavasse tags: trunk | |
| 13:41 |
llr:
| |
| 09:28 | Added license file. check-in: 7ae7a08ed3 user: achavasse tags: trunk | |
| 02:14 | codegen: generate correct function types. check-in: 5c095a9872 user: achavasse tags: trunk | |
| 01:50 | Fix the Env never being deleted due to captured shared_ptr in some builtin functions which created reference cycles. check-in: 1eb3c4a890 user: achavasse tags: trunk | |
|
2019-07-25
| ||
| 22:30 | Enable ThinLTO. check-in: cd65a705fd user: achavasse tags: trunk | |
| 22:17 | codegen: handle function types in LowerType(). check-in: 8816e0b6e9 user: achavasse tags: trunk | |
| 15:50 | builtins: extend GetLLVMType() to handle function types. check-in: eb91eeb361 user: achavasse tags: trunk | |
| 15:37 | builtins: llvm types are now built and stored at a standard location in the ir expressions of runtime types. check-in: 3f9a7b5082 user: achavasse tags: trunk | |
| 14:09 | Have the llvm context be a static instance instead of being owned by the Env object, so that we can access it anywhere. check-in: c5a38bbeae user: achavasse tags: trunk | |
|
2019-07-24
| ||
| 20:15 | func type: change the term encoding to include a void pointer that will be used to link to the function's llvm type, if any. check-in: 403761ee88 user: achavasse tags: trunk | |
| 11:41 | codegen: revised mangling, allow opaque pointers to be mangled since they are going to appear in native type identities, even though we don't care about what they point to for that purpose. check-in: 86893043c5 user: achavasse tags: trunk | |
| 11:03 |
ir:
| |
|
2019-07-23
| ||
| 19:44 | codegen: implemented LowerType. check-in: e42ae3d514 user: achavasse tags: trunk | |
| 19:02 | Moved overloadset's implementation into sema, as we'll need to keep pointers to some of them (used as extension points) in env. check-in: f8f1fcd169 user: achavasse tags: trunk | |
| 13:44 | execute: added an execution limit on calls and branch instructions to be able to time out of non-terminating compile time code. check-in: f0b3b44bbb user: achavasse tags: trunk | |
|
2019-07-22
| ||
| 15:36 | builtins: added a function to test whether a type is a runtime type. check-in: 138905cf4e user: achavasse tags: trunk | |
| 14:50 | builtins: runtime types: added a common prefix to easily be able to check if a type is a runtime type. check-in: 64244c6d0c user: achavasse tags: trunk | |
| 13:15 | Added a helper to perform a compile time OverloadSet invocation. check-in: c768853a4f user: achavasse tags: trunk | |
| 12:50 | builtins: added a helper to create and register an empty OverloadSet, to serve as extension points for the library. check-in: f10b5377f7 user: achavasse tags: trunk | |
|
2019-07-21
| ||
| 23:48 | Bumped llvm version. check-in: 8648053c0d user: achavasse tags: trunk | |
|
2019-07-16
| ||
| 20:06 |
builtins:
| |
|
2019-07-15
| ||
| 21:58 | builtins: added definitions for runtime array type. check-in: eade11527c user: achavasse tags: trunk | |
| 21:43 | builtins: added definitions for runtime pointer type. check-in: 84b541f45b user: achavasse tags: trunk | |
| 21:13 | sema: removed a couple of superfluous rule lookups when resolving an invocation. check-in: c7da710bb0 user: achavasse tags: trunk | |
| 20:21 | builtins: added definitions for basic runtime types. check-in: 54b8960363 user: achavasse tags: trunk | |
| 19:10 | builtins: renamed int and string to ct_int and ct_string to distinguish them from the future runtime and user facing types. In the end there should be little to no reason to ever use these types directly outside of the library anyway. check-in: f40cfaed57 user: achavasse tags: trunk | |
|
2019-07-14
| ||
| 19:29 |
codegen:
| |
|
2019-07-13
| ||
| 23:30 |
| |
| 19:33 | codegen: very first draft of function generation. check-in: 98a6fcaf3f user: achavasse tags: trunk | |
|
2019-07-12
| ||
| 20:58 | codegen: implemented mangling. check-in: f97c0b2cab user: achavasse tags: trunk | |
|
2019-07-11
| ||
| 19:32 | Allow overloading of builtin functions. check-in: bff15eb03d user: achavasse tags: trunk | |
|
2019-07-09
| ||
| 22:46 | codegen: added builtin functions to create a module and to dump it as llvm assembly text. check-in: 429f55ae3c user: achavasse tags: trunk | |
| 21:14 | Began the implementation of the code generator. check-in: c3a5885c4f user: achavasse tags: trunk | |
|
2019-07-08
| ||
| 19:40 | Implemented parsing rules for function domain specifiers, and fixed a couple of related bugs. check-in: b39d1cbe9a user: achavasse tags: trunk | |
|
2019-07-07
| ||
| 16:22 | Parser: parse function type modifiers. check-in: 105ba83ebf user: achavasse tags: trunk | |
| 10:33 | Parser: refactored function and template function parsing to go through a common code path to build function types. check-in: 5fd301c5f9 user: achavasse tags: trunk | |