1. A method, in a data processing system, for arranging binary code to reduce instruction cache conflict misses, comprising: generating, by a processor of the data processing system executing a compiler, a call graph of a portion of code; weighting, by the compiler, nodes and edges in the call graph to generate a weighted call graph; partitioning, by the compiler, the weighted call graph according to the weights, affinities between nodes of the call graph, and the size of cache lines in an instruction cache of the data processing system, so that binary code associated with one or more subsets of nodes in the call graph are combined into individual cache lines based on the partitioning; and outputting, by the compiler, the binary code corresponding to the partitioned call graph for execution in a computing device, wherein partitioning the weighted call graph comprises performing the following operations iteratively until an edge having a maximum weight cannot be selected from unprocessed edges of the weighted call graph: selecting an edge from the unprocessed edges of the weighted call graph that has a maximum weight of the weights of the unprocessed edges; and processing nodes of the selected edge.