[TCWG-1473] Fix -fno-integrated-as and -mbig-endian (Linux Kernel Build with clang) - Needed some revision to handle linker emulation. Patch in upstream review [TCWG-1474] Fix out of range branch (CBZ) when -fimplicit-it (or -fno-integrated-as) and certain kinds of inline assembly - Committed upstream. [TCWG-1424] Code-size investigations with PGO - Marking functions for size optimisation at the earliest possible stage improves code-size for little loss in performance. The main beneficiary is that loops are not unrolled in size optimised functions and inline thresholds are lower. - LTO with instrumented profiling still sees large increase in size. Originally thought my changes weren't working with LTO but I think that something else is happening. -- Found out that the profiling information isn't being sent to the LTO code-generator (although it should be present as IR annotations from the objects. -- There is an option to pass the sample profile through to the LTO code-generator but not an instrumented profile file. -- It seems like the LTO plugin doesn't use the new pass manager unless a separate option is passed through to the code-generator. -- It seems like Thin-LTO is where most of upstream development is these days and there is a slightly different pass pipeline, and some interaction with profiling. Worth some more experiments.
First draft made of incorporating YVR18 Jira discussion into Confluence https://collaborate.linaro.org/display/TCWG/JIRA+Usage+and+Best+Practices