Questions about using IBM FDPR?

I’m using XLC 16.1.1 Community Edition to compile application app_A.
app_A is built using the compilation parameters: xlc -O5 -qarch=pwr8 -qtune=pwr8 -Wl,-q.
Then, I’m optimizing application app_A using IBM FDPR (Feedback-Directed Program Restructuring). During one step, like this:

fdprpro -a instr -O3 -noasd app_A

I encounter an error after executing the command:

@Error: Analysis error: basic unit overlap: ConstArea: 0x10000254 32 – ConstArea: 0x10000254 32

Is there a way to resolve this error without modifying the source code by adding additional compilation parameters using XLC? Or are there other tools to remove duplicate ConstAreas?

In XLC, there isn’t a compilation option similar to GCC’s --gc-sections that instructs the linker to discard unreferenced sections in order to reduce the final size of the executable or library.

I’m sorry for the slow reply. It took awhile to track down an FDPR developer. (I have no knowledge of FDPR myself.) The developer’s initial reply was as follows. If it doesn’t help, maybe we can try something more heroic.

“It looks like the analysis identifies the same address block as both code and data (const) , maybe due to conflicting symbols generated by the XL compiler.

I am not sure if there is any way to resolve this issue with just using different analysis flags .

Yuu can try building the app using lower/different optimization flags (I am not sure what was used ), or maybe even use -qnoroconst flags to avoid placing constants in read only memory.”

Best wishes,

Brad (the intermediary)