Commit Graph

13307 Commits

Author SHA1 Message Date
Jeroen Ketema
4228828b66 C++: Address review comments 2025-06-16 15:02:08 +02:00
Jeroen Ketema
9d6a1a9885 C++: Generate SEH edges for pointer dereference loads in __try blocks 2025-06-16 12:39:53 +02:00
Jeroen Ketema
3eb768c1e9 C++: Generate SEH edges for pointer dereference stores in __try blocks 2025-06-16 12:39:50 +02:00
Jeroen Ketema
67d623fb06 C++: Add __try with load test case
Fix some formatting while here.
2025-06-16 12:39:47 +02:00
Mathias Vorreiter Pedersen
3d9d9fe9c0 Merge pull request #19746 from jketema/seh
C++: Use SEH exception edges in IR and generate SEH exception edges for calls in `__try`  blocks
2025-06-16 10:53:54 +01:00
Jeroen Ketema
1b2813dcf6 C++: Also generate an SEH edge for calls in initializers 2025-06-14 00:16:47 +02:00
Jeroen Ketema
815ae37a7e C++: Add test case with call in initialization
Fix formatting while here.
2025-06-14 00:05:00 +02:00
Jeroen Ketema
4a42ca8c69 C++: Limit SEH exception edges to calls in __try blocks 2025-06-13 20:34:35 +02:00
Mathias Vorreiter Pedersen
d83cbde1cb Merge pull request #19753 from MathiasVP/add-more-mad-summaries
C++: Add more MaD summaries
2025-06-13 18:23:11 +01:00
Jeroen Ketema
c7a7447768 C++: Generate an SEH exception edge for each call inside a SEH block 2025-06-13 16:30:25 +02:00
Jeroen Ketema
400424f13c C++: Add change note 2025-06-13 16:30:24 +02:00
Jeroen Ketema
6f41d3c4e3 C++: Use SEH exception edges for functions that unconditionally throw those 2025-06-13 16:30:23 +02:00
Jeroen Ketema
0038d0f17c C++: Deprecate ThrowingFunction and no longer use in IR 2025-06-13 16:30:20 +02:00
Mathias Vorreiter Pedersen
c14a4a66d5 C++: Accept test changes. Nothing exciting here. 2025-06-13 11:41:01 +01:00
Mathias Vorreiter Pedersen
458a9b0359 C++: Add change note. 2025-06-13 11:06:45 +01:00
Mathias Vorreiter Pedersen
e72fe9b88b C++: Generate lots of new models. 2025-06-13 10:57:44 +01:00
Mathias Vorreiter Pedersen
b02d859216 C++: Add lots of MaD model generation targets. 2025-06-13 10:56:19 +01:00
idrissrio
7af828720a C++: address review comments 2025-06-13 09:44:27 +02:00
idrissrio
ac1824aba7 C++: update stats file 2025-06-13 09:44:26 +02:00
idrissrio
7152e68a4d C++: add upgrade and downgrade scripts 2025-06-13 09:44:25 +02:00
idrissrio
e6faebf850 C++: add change note for LeaveStmt 2025-06-13 09:44:14 +02:00
idrissrio
a6b3310f77 C++: test new class LeaveStmt 2025-06-13 09:44:03 +02:00
idrissrio
f6fa707770 C++: Add LeaveStmt class 2025-06-13 09:44:01 +02:00
idrissrio
7a4de55ac2 C++: Add leave statement to dbscheme 2025-06-13 09:44:00 +02:00
Jeroen Ketema
7d8d596a35 Merge pull request #19686 from github/idrissrio/lambdaparams
C++: Add boolean for explicit lambda parameter lists
2025-06-11 23:53:00 +02:00
idrissrio
645ce5bbda C++: update change note after review comments 2025-06-11 11:41:51 +02:00
idrissrio
2bae21cbcd C++: address review comments 2025-06-11 11:41:50 +02:00
idrissrio
f759550e5a C++: update stats file 2025-06-11 11:41:49 +02:00
idrissrio
e4a9a5aee8 C++: add upgrade and downgrade scripts 2025-06-11 11:41:48 +02:00
idrissrio
b0c0fb9699 C++: Add change node 2025-06-11 11:41:47 +02:00
idrissrio
cb17a35cbd C++: Add test to check lambda parameters emptyness 2025-06-11 11:41:46 +02:00
idrissrio
6c9959d8bc C++: Add predicates for lambda parameter list 2025-06-11 11:41:45 +02:00
idrissrio
3ecc4c9ad7 C++: Adapt existing code to use the new layout of the underlying lambda table 2025-06-11 11:41:44 +02:00
idrissrio
9ac9607cb7 C++: Add boolean for explicit lambda parameter list 2025-06-11 11:41:43 +02:00
Paolo Tranquilli
fbcd9eaf09 Merge pull request #19674 from github/redsun82/mad
Rust: regenerate MaD files using DCA
2025-06-11 11:10:08 +02:00
Jeroen Ketema
a4be27659b C++: Minor test case reformatting 2025-06-10 15:55:18 +02:00
Jeroen Ketema
7d1b5ce584 C++: Add basic Aarch64 Neon test 2025-06-10 15:34:06 +02:00
Paolo Tranquilli
0d036992e0 Merge branch 'main' into redsun82/mad 2025-06-10 13:39:10 +02:00
Paolo Tranquilli
bcfc009228 Merge branch 'main' into redsun82/mad 2025-06-10 10:53:52 +02:00
Jeroen Ketema
d70282c322 C++: Update stats file 2025-06-09 23:42:52 +02:00
Jeroen Ketema
bff4213c62 C++: Add upgrade and downgrade scripts 2025-06-09 23:42:11 +02:00
Jeroen Ketema
f910906965 C++: Update expected test results 2025-06-09 23:42:09 +02:00
Jeroen Ketema
691e462501 C++: Support the __mfp8 floating point type 2025-06-09 23:42:07 +02:00
github-actions[bot]
21463a9653 Post-release preparation for codeql-cli-2.22.0 2025-06-09 18:50:20 +00:00
github-actions[bot]
88ba02edf8 Release preparation for version 2.22.0 2025-06-09 18:14:51 +00:00
Chuan-kai Lin
631502e129 Merge branch 'main' into cklin/rc-3.18-mergeback 2025-06-09 07:19:40 -07:00
Jeroen Ketema
428b48dfe7 Merge pull request #19679 from jketema/stats
C++: Update stats file after changes to DCA source suite
2025-06-09 12:39:33 +02:00
Jeroen Ketema
86f425d2fc C++: Fix join-order problem after stats file update
Before the fix:
```
Pipeline standard for AVRule79::exprReleases/3#e849cdd3@f2995ebb was evaluated in 5 iterations totaling 168745ms (delta sizes total: 12583).
              85855    ~0%    {2} r1 = SCAN `AVRule79::exprReleases/3#e849cdd3#prev_delta` OUTPUT In.1, In.2

              85855    ~0%    {2} r2 = JOIN r1 WITH `AVRule79::exprOrDereference/1#c20425a1_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1
             115767    ~6%    {2}    | JOIN WITH `ASTValueNumbering::GVN.getAnExpr/0#dispred#a14f45bf_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1
             333369   ~18%    {2}    | JOIN WITH `ASTValueNumbering::GVN.getAnExpr/0#dispred#a14f45bf` ON FIRST 1 OUTPUT Rhs.1, Lhs.1
             266264  ~204%    {2}    | JOIN WITH `Access::Access.getTarget/0#dispred#cf25c8aa` ON FIRST 1 OUTPUT Rhs.1, Lhs.1
              16379   ~21%    {3}    | JOIN WITH `Function::Function.getParameter/1#dispred#200dcf26_201#join_rhs` ON FIRST 1 OUTPUT Rhs.2, Lhs.1, Rhs.1

        13117819221    ~0%    {4} r3 = JOIN r2 WITH `Call::Call.getArgument/1#dispred#ada436ba_102#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.2, Lhs.1, Rhs.2
              10477    ~3%    {3}    | JOIN WITH `Call::FunctionCall.getTarget/0#dispred#935da4c5` ON FIRST 2 OUTPUT Lhs.0, Lhs.3, Lhs.2

        13117819221    ~1%    {4} r4 = JOIN r2 WITH `Call::Call.getArgument/1#dispred#ada436ba_102#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.2, Rhs.2
        13022632157    ~1%    {5}    | JOIN WITH `Call::FunctionCall.getTarget/0#dispred#935da4c5` ON FIRST 1 OUTPUT Rhs.1, Lhs.2, Lhs.1, Lhs.0, Lhs.3
               3720   ~70%    {3}    | JOIN WITH `#MemberFunction::MemberFunction.getAnOverridingFunction/0#dispred#a6e65b9ePlus` ON FIRST 2 OUTPUT Lhs.3, Lhs.4, Lhs.2

             115767    ~6%    {2} r5 = JOIN r1 WITH `ASTValueNumbering::GVN.getAnExpr/0#dispred#a14f45bf_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1
             333367   ~20%    {3}    | JOIN WITH `ASTValueNumbering::GVN.getAnExpr/0#dispred#a14f45bf` ON FIRST 1 OUTPUT Rhs.1, _, Lhs.1
             333367   ~12%    {3}    | REWRITE WITH Out.1 := 85
                  4    ~0%    {2}    | JOIN WITH exprs ON FIRST 2 OUTPUT Lhs.0, Lhs.2
                  4  ~100%    {2}    | JOIN WITH `Expr::Expr.getEnclosingFunction/0#dispred#3960f06c` ON FIRST 1 OUTPUT Rhs.1, Lhs.1

                  0    ~0%    {2} r6 = JOIN r5 WITH `Call::FunctionCall.getTarget/0#dispred#935da4c5_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1

                  0    ~0%    {2} r7 = JOIN r5 WITH `#MemberFunction::MemberFunction.getAnOverridingFunction/0#dispred#a6e65b9ePlus#swapped` ON FIRST 1 OUTPUT Rhs.1, Lhs.1
                  0    ~0%    {2}    | JOIN WITH `Call::FunctionCall.getTarget/0#dispred#935da4c5_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1

                  0    ~0%    {2} r8 = r6 UNION r7
                  0    ~0%    {3}    | JOIN WITH `Call::Call.getQualifier/0#dispred#7d175544` ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.0
                  0    ~0%    {3}    | JOIN WITH `AVRule79::exprOrDereference/1#c20425a1_10#join_rhs` ON FIRST 1 OUTPUT Lhs.2, Rhs.1, Lhs.1

              14197   ~18%    {3} r9 = r3 UNION r4 UNION r8
              12615    ~3%    {3}    | AND NOT `AVRule79::exprReleases/3#e849cdd3#prev`(FIRST 3)
                              return r9
```

After:
```
Pipeline standard for AVRule79::exprReleases/3#e849cdd3@13dead04 was evaluated in 5 iterations totaling 68ms (delta sizes total: 12551).
         85855    ~0%    {2} r1 = SCAN `AVRule79::exprReleases/3#e849cdd3#prev_delta` OUTPUT In.1, In.2

         85855    ~0%    {2} r2 = JOIN r1 WITH `AVRule79::exprOrDereference/1#c20425a1_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1
        115767    ~6%    {2}    | JOIN WITH `ASTValueNumbering::GVN.getAnExpr/0#dispred#a14f45bf_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1
        333443   ~18%    {2}    | JOIN WITH `ASTValueNumbering::GVN.getAnExpr/0#dispred#a14f45bf` ON FIRST 1 OUTPUT Rhs.1, Lhs.1
        265872  ~204%    {2}    | JOIN WITH `Access::Access.getTarget/0#dispred#cf25c8aa` ON FIRST 1 OUTPUT Rhs.1, Lhs.1
         16399   ~27%    {3}    | JOIN WITH `Function::Function.getParameter/1#dispred#200dcf26_201#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Rhs.2

         10489    ~1%    {3} r3 = JOIN r2 WITH `Call::FunctionCall.getTarget/0#dispred#935da4c5_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.2, Lhs.1

          1558   ~80%    {3} r4 = JOIN r2 WITH `#MemberFunction::MemberFunction.getAnOverridingFunction/0#dispred#a6e65b9ePlus#swapped` ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.2
          2196    ~7%    {3}    | JOIN WITH `Call::FunctionCall.getTarget/0#dispred#935da4c5_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.2, Lhs.1

         12685    ~3%    {3} r5 = r3 UNION r4
         12581    ~3%    {3}    | JOIN WITH `Call::Call.getArgument/1#dispred#ada436ba` ON FIRST 2 OUTPUT Lhs.0, Rhs.2, Lhs.2

        115767    ~6%    {2} r6 = JOIN r1 WITH `ASTValueNumbering::GVN.getAnExpr/0#dispred#a14f45bf_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1
        333443   ~20%    {3}    | JOIN WITH `ASTValueNumbering::GVN.getAnExpr/0#dispred#a14f45bf` ON FIRST 1 OUTPUT Rhs.1, _, Lhs.1
        333443   ~12%    {3}    | REWRITE WITH Out.1 := 85
             4    ~0%    {2}    | JOIN WITH exprs ON FIRST 2 OUTPUT Lhs.0, Lhs.2
             4  ~100%    {2}    | JOIN WITH `Expr::Expr.getEnclosingFunction/0#dispred#3960f06c` ON FIRST 1 OUTPUT Rhs.1, Lhs.1

             0    ~0%    {2} r7 = JOIN r6 WITH `Call::FunctionCall.getTarget/0#dispred#935da4c5_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1

             0    ~0%    {2} r8 = JOIN r6 WITH `#MemberFunction::MemberFunction.getAnOverridingFunction/0#dispred#a6e65b9ePlus#swapped` ON FIRST 1 OUTPUT Rhs.1, Lhs.1
             0    ~0%    {2}    | JOIN WITH `Call::FunctionCall.getTarget/0#dispred#935da4c5_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1

             0    ~0%    {2} r9 = r7 UNION r8
             0    ~0%    {3}    | JOIN WITH `Call::Call.getQualifier/0#dispred#7d175544` ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.0
             0    ~0%    {3}    | JOIN WITH `AVRule79::exprOrDereference/1#c20425a1_10#join_rhs` ON FIRST 1 OUTPUT Lhs.2, Rhs.1, Lhs.1

         12581    ~3%    {3} r10 = r5 UNION r9
         12576    ~3%    {3}    | AND NOT `AVRule79::exprReleases/3#e849cdd3#prev`(FIRST 3)
                         return r10
```
2025-06-06 07:13:26 +02:00
Jeroen Ketema
99ef4c7b38 Merge pull request #19533 from github/idrissrio/constexpr
C++: accept new test results after changes
2025-06-05 16:53:34 +02:00
Jeroen Ketema
057d3ebfdf C++: Update stats file after changes to DCA source suite 2025-06-05 15:57:55 +02:00