Apply Profile-Guided Optimization (PGO) on Tensorflow
I did some benchmarks on `tfcompile` with PGO and want to share my results.

## Test environment

* Fedora 38
* Linux kernel 6.3.7 (default Linux kernel from Fedora repos)
* AMD Ryzen 9 5900x
* 48 Gib RAM
* SSD Samsung 980 Pro 2 Tib
* Clang 16 (from the Fedora repositories). I use Clang just because I prefer LLVM-based tooling
* Tensorflow: from master branch (commit `61302d8dd536910b621fdb56c08f76cf59750595`)

## Tested configurations

I have tested the following Tensorflow configurations:

* Release: `bazelisk build tensorflow/compiler/aot:tfcompile`
* Release with PGO: `bazelisk build --fdo_optimize=tfcompile.profdata --cxxopt=-Wno-error=ignored-optimization-argument --cxxopt=-Wno-error=backend-plugin --copt=-Wno-error=ignored-optimization-argument --copt=-Wno-error=backend-plugin tensorflow/compiler/aot:tfcompile` flags (and previously built Instrumented version with `--fdo_instrument` flag)

## Benchmark

As a benchmark, I used a compilation of one model - `tf_split` ([link](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/compiler/aot/tests/make_test_graphs.py#L133)). The only difference made is enlarging the model: I replaced `range(3)` with `range(300)` on https://github.com/tensorflow/tensorflow/blob/master/tensorflow/compiler/aot/tests/make_test_graphs.py#L137 just to make compilation more time-consuming so I can measure it easier.

Command to execute `tfcompile`: `time tfcompile --graph=test_graph_tfsplits.pb --config=test_graph_tfsplits.config.pbtxt --cpp_class="mynamespace::MyComputation"`

## Results

I have the following results in optimization. All measurements are done on the same hardware/software, multiple times, in different orders, etc. The results are reproducible - I rechecked them multiple times. The results are presented in `time` utility format:

* Release: `16,77s user 0,08s system 99% cpu 16,875 total`
* Release + PGO: `14,98s user 0,06s system 99% cpu 15,068 total`
* Instrumented: `23,90s user 0,12s system 99% cpu 24,060 total`

At least in this test, PGO shows an improvement in `tfcompile` performance.
### Describe the problem
Profile-Guided Optimization (PGO) could help with achieving additional performance with Tensorflow. I guess some parts of Tensorflow are good candidates (like https://github.com/tensorflow/tensorflow/tree/master/tensorflow/compiler). Probably there are other good candidates - I am not familiar yet with the Tensorflow codebase.

Why I mentioned `tfcompile` is that PGO works especially well on compilers in practice (see [this](https://github.com/ZaMaZaN4iK/awesome-pgo) to read about the results on multiple applications).
