does nvcc exploit shared memory automaticlly?

as we know, the usage of shared memory can be explicitly control by user with the keyword shared
my question is: will the compiler nvcc automaticlly use the shared memory after auto-share-analysis, while the user doesn’t define any shared object?

No, the compiler never uses shared memory without the user asking for it. (This would require some pretty sophisticated code analysis to ensure the values didn’t vary across the block).

BTW, the compiler does use some shared memory to pass kernel parameters.