Page MenuHomePhabricator

eklepilkina (Elena Lepilkina)
User

Projects

User does not belong to any projects.

User Details

User Since
Apr 18 2016, 7:25 AM (329 w, 1 d)

Recent Activity

Today

eklepilkina added a comment to D130769: [RISCV] Combine and remove redundant ADD/SUB instructions.

Oh, yep, I got it.

Tue, Aug 9, 10:41 AM · Restricted Project, Restricted Project
eklepilkina updated the diff for D130769: [RISCV] Combine and remove redundant ADD/SUB instructions.
  • Replace pass before BranchRelaxation
Tue, Aug 9, 10:39 AM · Restricted Project, Restricted Project
eklepilkina updated the diff for D130769: [RISCV] Combine and remove redundant ADD/SUB instructions.
  • Upstream review fixes(2)
Tue, Aug 9, 4:46 AM · Restricted Project, Restricted Project
eklepilkina added inline comments to D130769: [RISCV] Combine and remove redundant ADD/SUB instructions.
Tue, Aug 9, 4:39 AM · Restricted Project, Restricted Project

Yesterday

eklepilkina added a comment to D130769: [RISCV] Combine and remove redundant ADD/SUB instructions.

Gently ping

Mon, Aug 8, 5:43 AM · Restricted Project, Restricted Project

Mon, Aug 1

eklepilkina updated the diff for D130769: [RISCV] Combine and remove redundant ADD/SUB instructions.
  • Upstream review fixes
Mon, Aug 1, 5:43 AM · Restricted Project, Restricted Project

Fri, Jul 29

eklepilkina updated the summary of D130769: [RISCV] Combine and remove redundant ADD/SUB instructions.
Fri, Jul 29, 6:12 AM · Restricted Project, Restricted Project
eklepilkina updated the summary of D130769: [RISCV] Combine and remove redundant ADD/SUB instructions.
Fri, Jul 29, 6:09 AM · Restricted Project, Restricted Project
eklepilkina added reviewers for D130769: [RISCV] Combine and remove redundant ADD/SUB instructions: anton-afanasyev, craig.topper, asb.
Fri, Jul 29, 6:06 AM · Restricted Project, Restricted Project
eklepilkina requested review of D130769: [RISCV] Combine and remove redundant ADD/SUB instructions.
Fri, Jul 29, 6:03 AM · Restricted Project, Restricted Project

Wed, Jul 27

eklepilkina added a comment to D127726: [InstCombiner] Add option to replace PHI of GEPs with GEP with PHI as index.

Gentle ping

Wed, Jul 27, 12:46 AM · Restricted Project, Restricted Project
eklepilkina updated the diff for D127726: [InstCombiner] Add option to replace PHI of GEPs with GEP with PHI as index.
  • Fix typo
Wed, Jul 27, 12:46 AM · Restricted Project, Restricted Project

Tue, Jul 26

eklepilkina added a comment to D127858: [RISCV] Turn on SeparateConstOffsetFromGEPPass for RISC-V target.

Gentle ping

Tue, Jul 26, 6:36 AM · Restricted Project, Restricted Project
eklepilkina added a comment to D127727: [SeparateConstOffsetFromGEPPass] Added optional modification strategy.

Gentle ping

Tue, Jul 26, 6:35 AM · Restricted Project, Restricted Project

Mon, Jul 18

eklepilkina updated the diff for D127727: [SeparateConstOffsetFromGEPPass] Added optional modification strategy.
  • [SeparateConstOffsetFromGEP] Fix ignoring condition
Mon, Jul 18, 7:43 AM · Restricted Project, Restricted Project
eklepilkina added a comment to D127726: [InstCombiner] Add option to replace PHI of GEPs with GEP with PHI as index.

Maybe you could take a look at one big regression in MicroBenchmarks/LCALS/SubsetALambdaLoops/lcalsALambda.test:BM_PRESSURE_CALC_LAMBDA/5001

Mon, Jul 18, 2:42 AM · Restricted Project, Restricted Project
eklepilkina added a comment to D127726: [InstCombiner] Add option to replace PHI of GEPs with GEP with PHI as index.

The results for X86

Tests: 2900
Short Running: 2325 (filtered out)
Remaining: 575
Metric: exec_time
Mon, Jul 18, 2:21 AM · Restricted Project, Restricted Project
eklepilkina added a comment to D127726: [InstCombiner] Add option to replace PHI of GEPs with GEP with PHI as index.

Ok, I got your concerns about flag, I've checked the test-suite results also on X86 (they are attached below). There was no real regressions. Microbenchmarks results that are in top of regressions aren't reproducable and on other runs I've made they have another result. Of course, I have no opportunity to check all backends.

Mon, Jul 18, 2:18 AM · Restricted Project, Restricted Project
eklepilkina updated the diff for D127726: [InstCombiner] Add option to replace PHI of GEPs with GEP with PHI as index.
  • [InstCombiner][Test] Removed flag from test
Mon, Jul 18, 2:15 AM · Restricted Project, Restricted Project
eklepilkina updated the diff for D127726: [InstCombiner] Add option to replace PHI of GEPs with GEP with PHI as index.
  • [InstCombiner] Removed flag to turn off the new type of canonization
Mon, Jul 18, 1:36 AM · Restricted Project, Restricted Project

Thu, Jul 14

eklepilkina added a comment to D127727: [SeparateConstOffsetFromGEPPass] Added optional modification strategy.

Ping

Thu, Jul 14, 6:34 AM · Restricted Project, Restricted Project
eklepilkina added a comment to D127858: [RISCV] Turn on SeparateConstOffsetFromGEPPass for RISC-V target.

I decided to make flag turned off by default, because even if SeparateConstOffsetFromGEP doesn't change anything EarlyCSE and LICM can change and this isn't always useful.

Thu, Jul 14, 6:32 AM · Restricted Project, Restricted Project
eklepilkina added a comment to D127726: [InstCombiner] Add option to replace PHI of GEPs with GEP with PHI as index.

We already have an implementation of this general transform -- shouldn't it be sufficient to relax only this condition? https://github.com/llvm/llvm-project/blob/7dc18a62e40e241019ec77e70f01bc41d39ab748/llvm/lib/Transforms/InstCombine/InstCombinePHI.cpp#L537 (At least for the basic case.)

Thu, Jul 14, 6:22 AM · Restricted Project, Restricted Project
eklepilkina added a comment to D127726: [InstCombiner] Add option to replace PHI of GEPs with GEP with PHI as index.

I added this under the flag and run subset of test-suite with flag turned on.
The comparasion results are in cycles (got by perf).

Thu, Jul 14, 6:07 AM · Restricted Project, Restricted Project
eklepilkina added a comment to D127726: [InstCombiner] Add option to replace PHI of GEPs with GEP with PHI as index.

@nikic, thank you! I've rewritten this modification in InstCombine.

Thu, Jul 14, 5:57 AM · Restricted Project, Restricted Project
eklepilkina retitled D127726: [InstCombiner] Add option to replace PHI of GEPs with GEP with PHI as index from [SimplifyCFG] Don't sink common code if PHI node with some GEPs is created to [InstCombiner] Add option to replace PHI of GEPs with GEP with PHI as index.
Thu, Jul 14, 5:54 AM · Restricted Project, Restricted Project
eklepilkina updated the diff for D127726: [InstCombiner] Add option to replace PHI of GEPs with GEP with PHI as index.

[InstCombiner] Add option to replace PHI of GEPs with GEP with PHI as index

Thu, Jul 14, 5:50 AM · Restricted Project, Restricted Project

Tue, Jul 12

eklepilkina updated the diff for D127858: [RISCV] Turn on SeparateConstOffsetFromGEPPass for RISC-V target.
  • Added Scalar to CMakeLists
  • [RISCV] Turn off SeparateConstOffsetFromGEP by default
Tue, Jul 12, 2:23 AM · Restricted Project, Restricted Project
eklepilkina updated the diff for D127727: [SeparateConstOffsetFromGEPPass] Added optional modification strategy.

Fix review

Tue, Jul 12, 2:20 AM · Restricted Project, Restricted Project
eklepilkina updated the diff for D127727: [SeparateConstOffsetFromGEPPass] Added optional modification strategy.

Refactoring

Tue, Jul 12, 2:10 AM · Restricted Project, Restricted Project

Jul 3 2022

eklepilkina updated the summary of D127726: [InstCombiner] Add option to replace PHI of GEPs with GEP with PHI as index.
Jul 3 2022, 9:59 PM · Restricted Project, Restricted Project
eklepilkina updated the diff for D127726: [InstCombiner] Add option to replace PHI of GEPs with GEP with PHI as index.
  • [SimplifyCFG] Added flag to control creation of PHI nodes with entity elements
Jul 3 2022, 9:45 PM · Restricted Project, Restricted Project
eklepilkina updated the diff for D127726: [InstCombiner] Add option to replace PHI of GEPs with GEP with PHI as index.
  • [SimplifyCFG] Added flag to control creation of PHI nodes with entity elements
Jul 3 2022, 9:39 PM · Restricted Project, Restricted Project

Jun 29 2022

eklepilkina updated the diff for D127727: [SeparateConstOffsetFromGEPPass] Added optional modification strategy.
  • [SeparateConstOffsetFromGEP] Fix comparator for map with GEP bases
Jun 29 2022, 2:33 AM · Restricted Project, Restricted Project

Jun 28 2022

eklepilkina added a comment to D127858: [RISCV] Turn on SeparateConstOffsetFromGEPPass for RISC-V target.

Run one more time benchmarks from test-suite.

Jun 28 2022, 3:18 AM · Restricted Project, Restricted Project

Jun 20 2022

eklepilkina updated the diff for D127858: [RISCV] Turn on SeparateConstOffsetFromGEPPass for RISC-V target.
  • Added Scalar to CMakeLists
Jun 20 2022, 7:36 AM · Restricted Project, Restricted Project
eklepilkina added a comment to D127858: [RISCV] Turn on SeparateConstOffsetFromGEPPass for RISC-V target.

Are you seeing any instances of worse code in any of the tests / benchmarks you're looking at?

Jun 20 2022, 5:45 AM · Restricted Project, Restricted Project

Jun 16 2022

eklepilkina updated the summary of D127858: [RISCV] Turn on SeparateConstOffsetFromGEPPass for RISC-V target.
Jun 16 2022, 6:25 AM · Restricted Project, Restricted Project
eklepilkina added a comment to D127858: [RISCV] Turn on SeparateConstOffsetFromGEPPass for RISC-V target.

Now clang for RISC-V doesn't use offset addressing in generated assembly. Example from Dhrystone

 addiw   a0, s1, 5
 slli    a1, a0, 0x2
 add     a2, s4, a1
 sw      s2, 0(a2)
 addiw   a3, s1, 6
 slli    a3, a3, 0x2
 add     a3, a3, s4
 sw      s2, 0(a3)
 addiw   a3, s1, 35
 slli    a3, a3, 0x2
add     a3, a3, s4
sw      a0, 0(a3)

It's inefficient because we can use offsets.
Adding this pass allows to generate the next code

    addiw   a4, a2, 5
    slli    a5, a2, 2
    add a0, a0, a5
    sw  a3, 20(a0)
    sw  a3, 24(a0)
    sw  a4, 140(a0)
...

SeparateConstOffsetFromGEPPass is used to solve this problem in targets with limited addressing modes.

Jun 16 2022, 3:47 AM · Restricted Project, Restricted Project

Jun 15 2022

eklepilkina added reviewers for D127858: [RISCV] Turn on SeparateConstOffsetFromGEPPass for RISC-V target: anton-afanasyev, luismarques, craig.topper, eli.friedman.
Jun 15 2022, 7:28 AM · Restricted Project, Restricted Project
eklepilkina requested review of D127858: [RISCV] Turn on SeparateConstOffsetFromGEPPass for RISC-V target.
Jun 15 2022, 7:25 AM · Restricted Project, Restricted Project
eklepilkina retitled D127727: [SeparateConstOffsetFromGEPPass] Added optional modification strategy from [RISCV] Turn on SeparateConstOffsetFromGEPPass for RISC-V target and added optional modification strategy in it to [SeparateConstOffsetFromGEPPass] Added optional modification strategy.
Jun 15 2022, 7:23 AM · Restricted Project, Restricted Project
eklepilkina updated the diff for D127727: [SeparateConstOffsetFromGEPPass] Added optional modification strategy.

Separate part with pass modification

Jun 15 2022, 7:22 AM · Restricted Project, Restricted Project

Jun 14 2022

eklepilkina added a comment to D127727: [SeparateConstOffsetFromGEPPass] Added optional modification strategy.

This should be two patches, one changing the pass and one enabling for RISC-V.

Jun 14 2022, 9:03 AM · Restricted Project, Restricted Project
eklepilkina added inline comments to D127727: [SeparateConstOffsetFromGEPPass] Added optional modification strategy.
Jun 14 2022, 8:54 AM · Restricted Project, Restricted Project
eklepilkina added a comment to D127727: [SeparateConstOffsetFromGEPPass] Added optional modification strategy.

Sorry, I had to provide the context at the beginning.

Jun 14 2022, 8:37 AM · Restricted Project, Restricted Project
eklepilkina updated the diff for D127727: [SeparateConstOffsetFromGEPPass] Added optional modification strategy.

Rebased against precommited tests

Jun 14 2022, 6:02 AM · Restricted Project, Restricted Project
eklepilkina updated the diff for D127726: [InstCombiner] Add option to replace PHI of GEPs with GEP with PHI as index.

Rebased against precommited tests

Jun 14 2022, 5:54 AM · Restricted Project, Restricted Project
eklepilkina removed a reviewer for D127727: [SeparateConstOffsetFromGEPPass] Added optional modification strategy: wu.
Jun 14 2022, 2:08 AM · Restricted Project, Restricted Project
eklepilkina added reviewers for D127727: [SeparateConstOffsetFromGEPPass] Added optional modification strategy: anton-afanasyev, luismarques, jingyue, wu.
Jun 14 2022, 2:08 AM · Restricted Project, Restricted Project
eklepilkina requested review of D127727: [SeparateConstOffsetFromGEPPass] Added optional modification strategy.
Jun 14 2022, 2:04 AM · Restricted Project, Restricted Project
eklepilkina added a reviewer for D127726: [InstCombiner] Add option to replace PHI of GEPs with GEP with PHI as index: hfinkel.
Jun 14 2022, 1:37 AM · Restricted Project, Restricted Project
eklepilkina retitled D127726: [InstCombiner] Add option to replace PHI of GEPs with GEP with PHI as index from [test][SimplifyCFG] Precommit test with GEP instructions to [SimplifyCFG] Don't sink common code if PHI node with some GEPs is created.
Jun 14 2022, 1:31 AM · Restricted Project, Restricted Project
eklepilkina requested review of D127726: [InstCombiner] Add option to replace PHI of GEPs with GEP with PHI as index.
Jun 14 2022, 1:29 AM · Restricted Project, Restricted Project

Nov 15 2018

eklepilkina added a comment to D53565: Configure only needed part of test-suite during running subtests.

I tried out -DTEST_SUITE_SUBDIRS=SingleSource/Benchmarks/Misc. It gets the desired smaller build tree, but ends up missing lit.local.cfg in SingleSouce so the tests fail.

Nov 15 2018, 3:05 AM
eklepilkina updated the diff for D53565: Configure only needed part of test-suite during running subtests.
Nov 15 2018, 2:57 AM
eklepilkina updated the diff for D53565: Configure only needed part of test-suite during running subtests.
Nov 15 2018, 2:50 AM
eklepilkina added inline comments to D53565: Configure only needed part of test-suite during running subtests.
Nov 15 2018, 2:47 AM

Nov 14 2018

eklepilkina added a comment to D53565: Configure only needed part of test-suite during running subtests.

Please, could someone review these changes?
Or may be add other reviewers if I choose wrong people?

Nov 14 2018, 7:20 AM

Oct 23 2018

eklepilkina created D53568: [LNT] Setting CMake variable to support test-suite feature from D53565 .
Oct 23 2018, 6:27 AM
eklepilkina added inline comments to D53565: Configure only needed part of test-suite during running subtests.
Oct 23 2018, 5:57 AM
eklepilkina created D53565: Configure only needed part of test-suite during running subtests.
Oct 23 2018, 5:53 AM

Sep 26 2016

eklepilkina added a comment to D22501: FileCheck Enhancement - Expressions repeat for CHECK and CHECK-NEXT.

This patch brings up a number of questions:

  1. What's your use case? Optimizing tests by replacing a known number of check lines with repeated patterns? Or is the number of patterns you expect not known in advance?

Both first and second case.

  1. Are there possible usages of this feature in LLVM tests already?

I don't know LLVM tests well to answer this question.

  1. How is this going to interact with [[@LINE]]?

I used FileCheck Match function in loop, so it will be real LINE value. I don't change matching.

Sep 26 2016, 12:02 AM
eklepilkina added a comment to D22501: FileCheck Enhancement - Expressions repeat for CHECK and CHECK-NEXT.
Sep 26 2016, 12:00 AM

Sep 25 2016

eklepilkina added inline comments to D22454: FileCheck Enhancement - repeats in regular expressions.
Sep 25 2016, 11:50 PM

Sep 19 2016

eklepilkina edited reviewers for D22503: FileCheck Enhancement - prefixes-regular expressions, added: alexfh; removed: dblaikie.
Sep 19 2016, 1:43 AM
eklepilkina edited reviewers for D22502: FileCheck Enhancement - CHECK-LABEL-DAG, added: alexfh; removed: dblaikie.
Sep 19 2016, 1:43 AM
eklepilkina edited reviewers for D22501: FileCheck Enhancement - Expressions repeat for CHECK and CHECK-NEXT, added: alexfh; removed: dblaikie.
Sep 19 2016, 1:42 AM
eklepilkina edited reviewers for D22500: FileCheck Enhancement - Including files, added: alexfh; removed: dblaikie.
Sep 19 2016, 1:42 AM
eklepilkina edited reviewers for D22454: FileCheck Enhancement - repeats in regular expressions, added: alexfh; removed: dblaikie.
Sep 19 2016, 1:41 AM
eklepilkina added a comment to D22353: FileCheck Enhancement - CHECK-WORD.

There is problem with STL, their realization of regular expressions doesn't match start and end of line in basic mode and there is no multiline mode. There is the issue 2343 in http://cplusplus.github.io/LWG/lwg-toc.html.
There is opportunity to split text by lines and match each line separately, but I think this is a hack, and I think it'll slow FileCheck.

Sep 19 2016, 12:28 AM

Sep 16 2016

eklepilkina added a comment to D22353: FileCheck Enhancement - CHECK-WORD.

Ok, I'll try to use STL regex.

Sep 16 2016, 6:09 AM

Sep 15 2016

eklepilkina updated the diff for D22403: FileCheck Enhancement - pattern templates..

Patch without modifiers for pattern parameters and using pattern and variables inside definition of other patterns.

Sep 15 2016, 6:03 AM
eklepilkina added inline comments to D22403: FileCheck Enhancement - pattern templates..
Sep 15 2016, 1:47 AM

Sep 14 2016

eklepilkina added a comment to D22353: FileCheck Enhancement - CHECK-WORD.

As I understood most of users prefer to change library to have support of \b assert. But, I think, this decision is quite important and can be made only by he contributor of FileCheck. I don't know how this suggestion can be done. Or I can try to change library and create a patch with this changes?

Sep 14 2016, 11:30 PM

Sep 13 2016

eklepilkina added a comment to D22353: FileCheck Enhancement - CHECK-WORD.

What are our options with the regex library? Is there a newer version of the one we are currently using that we could upgrade to (and that supports \b)?

Sep 13 2016, 7:41 AM

Sep 10 2016

eklepilkina added a comment to D22403: FileCheck Enhancement - pattern templates..

Are quotes necessary for parameters? Everything is string in FileCheck.
Using patterns and variables was in old grammer. I thought that we only change syntax, so I added this feature too.
Ok, I'll remove this from this patch. But then I want to add using patterns and variables in definitions later. On my opinion these features are quite useful.

Sep 10 2016, 10:58 AM

Sep 8 2016

eklepilkina updated the diff for D22403: FileCheck Enhancement - pattern templates..

Change syntax to new one suggested by Vedant Kumar.

Sep 8 2016, 7:12 AM
eklepilkina added a comment to D22353: FileCheck Enhancement - CHECK-WORD.

Why not add more words to check lines to make them more strict? BTW, does FileCheck support {{\b}}?

Sep 8 2016, 12:59 AM

Sep 1 2016

eklepilkina updated the diff for D22353: FileCheck Enhancement - CHECK-WORD.
Sep 1 2016, 1:28 AM
eklepilkina updated the diff for D22353: FileCheck Enhancement - CHECK-WORD.
Sep 1 2016, 12:26 AM

Jul 21 2016

eklepilkina added a comment to D22403: FileCheck Enhancement - pattern templates..

They are also both placeholders for a pattern. Can you give an example where it is useful to tell the difference between a use of a pattern and a use of a plain old variable? Does it make the test more readable?
I'm not saying that we have to share the syntax, but adding more syntax increases the cognitive load on testcase authors and we should make sure we are doing it for the right reasons.

Jul 21 2016, 11:55 PM
eklepilkina added a comment to D22353: FileCheck Enhancement - CHECK-WORD.

I made new mode and made experiment turned it on for all LLVM tests.
Result:

Expected Passes    : 15810
Expected Failures  : 125
Unsupported Tests  : 195
Unexpected Passes  : 4
Unexpected Failures: 1128
Jul 21 2016, 1:42 AM
eklepilkina updated the diff for D22353: FileCheck Enhancement - CHECK-WORD.

Replace set of new CHECK directives to new -check-word option

Jul 21 2016, 1:30 AM

Jul 20 2016

eklepilkina added a comment to D22403: FileCheck Enhancement - pattern templates..

Is there a benefit in (or need for) distinguishing between variable uses and pattern uses, or could we piggyback the existing syntax?

There is difference between patterns and variables so we should understand where variable is, where pattern is.

As for pattern variables, I really think this review would benefit if we could split out pattern variables into a separate review. I didn't yet understand how pattern variables are supposed to work: Is \:(variable)\=(value) supposed to be an argument to a pattern use that immediately precedes it? Or is it modifying global state similar to regular variable definition in FileCheck? If the latter is the case, why does it come after the pattern in the example? In the former case, wouldn't it be better to have syntax that looks more like passing in an argument?

Jul 20 2016, 11:25 PM
eklepilkina added a comment to D22353: FileCheck Enhancement - CHECK-WORD.

There is a suggestion to add new option, which will change standart behaviour to word-matchinf instead of addding new set of CHECKs directives. What about this idea?

Jul 20 2016, 6:57 AM
eklepilkina updated the diff for D22403: FileCheck Enhancement - pattern templates..
Jul 20 2016, 6:40 AM
eklepilkina added a comment to D22403: FileCheck Enhancement - pattern templates..

About syntax.
There is an idea to do as you advised.
Suggested new syntax:
[['#template_name]] - use of template 'template_name'. It can occur in CHECK-PATTERN line, when description of one template includes other templates described before. (Without quote, I don't know how escape # here)
[[:Variable_name]] - template variable with name 'variable_name'
[[:variable_name=value]] - current value of template variable(it's needed when you use template with variables).
Is this syntax better? Should I do such way?

Jul 20 2016, 6:29 AM
eklepilkina updated the diff for D22403: FileCheck Enhancement - pattern templates..
Jul 20 2016, 6:06 AM
eklepilkina added inline comments to D22403: FileCheck Enhancement - pattern templates..
Jul 20 2016, 6:03 AM
eklepilkina added inline comments to D22403: FileCheck Enhancement - pattern templates..
Jul 20 2016, 1:28 AM
eklepilkina added a comment to D22403: FileCheck Enhancement - pattern templates..

Using CHECK-lines to define meta-variables without checking anything diverges from FileCheck's usual behavior.

Jul 20 2016, 12:08 AM

Jul 19 2016

eklepilkina updated the diff for D22403: FileCheck Enhancement - pattern templates..
Jul 19 2016, 6:33 AM
eklepilkina updated subscribers of D22403: FileCheck Enhancement - pattern templates..
Jul 19 2016, 6:10 AM
eklepilkina added inline comments to D22403: FileCheck Enhancement - pattern templates..
Jul 19 2016, 6:09 AM
eklepilkina added inline comments to D22403: FileCheck Enhancement - pattern templates..
Jul 19 2016, 5:15 AM
eklepilkina abandoned D22401: FileCheck Enhancement - prefixes-regular expressions.
Jul 19 2016, 12:33 AM
eklepilkina retitled D22503: FileCheck Enhancement - prefixes-regular expressions from to FileCheck Enhancement - prefixes-regular expressions.
Jul 19 2016, 12:33 AM
eklepilkina updated the diff for D22353: FileCheck Enhancement - CHECK-WORD.
Jul 19 2016, 12:01 AM

Jul 18 2016

eklepilkina updated subscribers of D22353: FileCheck Enhancement - CHECK-WORD.
Jul 18 2016, 11:48 PM