Commit graph

116 commits

Author SHA1 Message Date
Lioncash f6f5913b5f op: Use std::vector's insert member function within vector variant of Add()
While looping here does work fine, it's mildly inefficient, particularly
if the number of members being added is large, because it can result in
multiple allocations over the period of the insertion, depending on how
much extra memory push_back may allocate for successive elements.

Instead, we can just tell the std::vector that we want to slap the whole
contained sequence at the back of it with insert, which lets it allocate
the whole memory block in one attempt.
2019-03-14 04:31:14 -03:00
Lioncash 6fd44e494c Pass std::string by value where applicable.
By taking the std::string by value in the constructor, this allows for
certain situations where copies can be elided entirely (when moving an
instance into the constructor)

e.g.

std::string var = ...

...

... = LiteralString(std::move(var)) // Or whatever other initialization
                                    // is done.

No copy will be done in this case, the move transfers it into the
constructor, and then the move within the initializer list transfers it
into the member variable.

tl;dr: This allows the calling code to potentially construct less
std::string instances by allowing moving into the parameters themselves.
2019-03-14 04:30:39 -03:00
ReinUsesLisp d5c37d242a
Merge pull request #11 from lioncash/default
operand: Append default to the default constructor
2019-03-14 03:53:31 -03:00
Lioncash 260183a2c7 operand: Append default to the default constructor
Makes it consistent with the destructor.
2019-03-14 02:50:07 -04:00
ReinUsesLisp 3ec2231f9a
Merge pull request #9 from lioncash/unused
sirit: Remove unused variable in AddAnnotation()
2019-03-14 03:49:20 -03:00
ReinUsesLisp 151d9e816d
Merge pull request #10 from lioncash/order
op: Amend constructor initializer list order
2019-03-14 03:48:05 -03:00
Lioncash 984b731e17 op: Amend constructor initializer list order
Amends the order of the initializer list to be structured the same way
the members are ordered.

Silences a -Wreorder warning.
2019-03-14 02:45:57 -04:00
Lioncash 1081bcdda9 sirit: Remove unused variable in AddAnnotation()
id isn't used within AddAnnotation, so this can be removed.
2019-03-14 02:43:05 -04:00
ReinUsesLisp 2035d25bef
Merge pull request #7 from lioncash/override
src: Amend missing override specifiers
2019-03-14 03:40:04 -03:00
ReinUsesLisp a8ac2068a6
Merge pull request #8 from lioncash/ref
sirit: Add missing reference argument specifier for OpLabel
2019-03-14 03:39:30 -03:00
Lioncash 59867b7907 sirit: Add missing reference argument specifier for OpLabel 2019-03-14 02:31:18 -04:00
Lioncash 11b7743c29 src: Amend missing override specifiers 2019-03-14 02:25:57 -04:00
ReinUsesLisp 057b100a68 Assert on empty Emit 2019-03-13 19:20:29 -03:00
ReinUsesLisp 1c06f8530e Remove Op prefix on Type instructions 2019-03-13 18:32:38 -03:00
ReinUsesLisp 3fa70013b8 Add missing instruction commentaries 2019-03-11 05:13:35 -03:00
ReinUsesLisp 4b1c1d1e38 Add ellipsis overloads for instructions ending in vectors 2019-03-11 04:38:09 -03:00
ReinUsesLisp ee4ce61e62 Add name overload to OpLabel 2019-03-11 03:48:39 -03:00
ReinUsesLisp ba92d8ea08 Update README.md and remove automatic capabilities addition 2019-03-11 03:41:44 -03:00
ReinUsesLisp 73595f4588 Change clang-format settings 2019-03-11 03:26:21 -03:00
ReinUsesLisp 38838c9a9d Sort macro defitions for image instructions 2019-03-11 03:19:59 -03:00
ReinUsesLisp 88191480a8 Remove undefined behaviour from literal number 2019-03-11 03:19:59 -03:00
ReinUsesLisp b23716087a Add OpExtension 2019-03-08 21:09:11 -03:00
ReinUsesLisp 2b0a59d890 Add OpSwitch 2019-01-05 23:58:43 -03:00
ReinUsesLisp e7971b4451 Add OpExecutionMode 2018-12-04 21:30:32 -03:00
ReinUsesLisp 3641e1de45 Add OpKill 2018-12-02 22:57:55 -03:00
ReinUsesLisp 93d42e62da Remove WriteEnum abstraction 2018-11-16 04:21:37 -03:00
ReinUsesLisp 9d787510d3 Fixup assert formatting 2018-11-16 04:21:01 -03:00
ReinUsesLisp f259019494 Rename "insts" directory to "instructions" 2018-11-16 04:15:48 -03:00
ReinUsesLisp f5944d61a6 Upgrade from LGPLv2.1 to LGPLv3 2018-11-16 04:10:10 -03:00
ReinUsesLisp 664569a3b8 Avoid CMake SPIR-V module dependencies 2018-11-16 03:59:28 -03:00
ReinUsesLisp fe67a427ff Fixup tests 2018-11-16 03:50:21 -03:00
ReinUsesLisp 174263d906
Merge pull request #5 from FernandoS27/image
Implemented Image Instructions
2018-11-13 20:06:13 -03:00
FernandoS27 0318449d65 Implemented Image Instructions 2018-11-13 19:04:43 -04:00
ReinUsesLisp 30dbb951dd Fixup empty GLSL extension creation 2018-11-13 19:30:54 -03:00
ReinUsesLisp 7c15e838c6
Merge pull request #6 from FernandoS27/conversion
Implement main conversion instructions
2018-11-12 21:54:36 -03:00
FernandoS27 a6c435dcb7 Implement main conversion instructions 2018-11-12 14:37:54 -04:00
ReinUsesLisp 8747340c44
Merge pull request #4 from FernandoS27/logical
Implemented ALL the logical instructions
2018-11-11 22:20:37 -03:00
FernandoS27 aa2eaab480 Implemented ALL the logical instructions 2018-11-11 21:14:59 -04:00
ReinUsesLisp bdf538bd64
Merge pull request #3 from FernandoS27/bit
Implemented the rest of the bitwise operations
2018-11-11 21:06:01 -03:00
ReinUsesLisp 9a02f915a7
Merge pull request #2 from FernandoS27/glsl
Implemented a bunch of glsl functions
2018-11-11 21:05:14 -03:00
FernandoS27 26a40708d7 Implemented a bunch of glsl functions 2018-11-11 20:03:29 -04:00
FernandoS27 aa3d1adbbd Implemented the rest of the bitwise operations 2018-11-11 18:51:08 -04:00
ReinUsesLisp 6790490271
Merge pull request #1 from FernandoS27/arith
Added more arithmetic instructions
2018-11-11 14:21:47 -03:00
FernandoS27 c2646f3b4c Added more arithmetic instructions 2018-11-10 23:15:02 -04:00
ReinUsesLisp 8f17ad84ba Annotations return target and add OpUMod 2018-11-06 04:50:10 -03:00
ReinUsesLisp 587f1dc9f5
Update README.md 2018-11-05 03:44:29 -03:00
ReinUsesLisp c502cfd4b2 Add OpFDiv 2018-11-04 03:19:02 -03:00
ReinUsesLisp 27a0b4f17e Add OpFNegate 2018-11-04 03:11:25 -03:00
ReinUsesLisp 6742afd6dd Add support for GLSLstd450 and OpFAbs 2018-11-04 03:03:06 -03:00
ReinUsesLisp 44043bca56 Add OpCompositeConstruct 2018-11-04 02:38:13 -03:00