1. A method for selectively storing cachelines in a multi-level cache hierarchy, containing at least a first cache memory and a second cache memory, the method comprising: tracking reuse behavior of a cacheline, during execution of an application, in both a first level cache memory and a second level cache memory; and determining a cache placement policy based on the tracked reuse behavior.